본문 바로가기
파이썬

파이썬 Django : "TypeError : [] is not JSON serializable"이유는 무엇입니까?

by º기록 2020. 12. 20.
반응형

이 오류가 어떻게 발생했을 수 있습니까? 나는 이것을 입력했다 :

def json(self):
    return json.dumps(
        {
            'items': self.items
        }
    )

그 오류가 발생했습니다 (self.items가 빈 쿼리 세트 (Django)이기 때문에

하지만,

def json(self):
    return json.dumps(
        {
            'items': []  # Pass in empty list to prove that the error was idiotic.
        }
    )

잘 작동했습니다 (적어도 오류 메시지가 가치가 없음을 증명 함)

쿼리 세트가 repr ()을 정의하고 비어 있거나 그와 같은 우스꽝스러운 것이 있으면 '[]'를 문자열로 반환하기 때문입니까?

 

해결 방법

 

쿼리 세트는 기본적으로 직렬화 할 수 없습니다. self.items 대신 list (self.items) 를 시도하면 항목 자체가 JSON 직렬화가 가능한 한 작동합니다.

업데이트 : 비어 있지 않아도 예외가 발생합니다. 물론 시도해 볼 수는 있지만 장고 버그로 받아 들여질 것이라고 생각하지 않습니다. 가장 간단한 대답은 내가 이미 말했듯이 list (qs) 를 사용하여 강제로 평가하는 것입니다.

 

참조 페이지 https://stackoverflow.com/questions/2243002

 

 

반응형

댓글