2012-01-23 2 views
0

을 던지고 난이 :장고 내 코드에서 "직렬화 [123L, 123L]가 아닌 JSON"

json.dumps({'foo': {'bar': [123L, 123L]}}) 

긴의 int는 기본 키입니다.

json.dumps({'foo': {'bar': [123L, 123L]}}) 

가 잘 작동 : 내가 파이썬 manage.py 쉘에서 실행하려고하면

"[123L, 123L] 직렬화 JSON 아니다"

: 어떤 이유로이 줄은 오류가 발생합니다 .

아무도 나에게 무슨 일이 일어 났는지 말해 줄 수 있습니까?

정확한 장고 오류 :

예외 유형 : 형식 오류 예외 값 : /usr/lib/python2.7/dist-packages/simplejson/encoder.py에서 : [123L]하지 JSON 직렬화 예외 위치입니다 기본 라인은 192

+0

을 잘 우선 당신이 닫는 중괄호 ('}')이 없습니다 게시 된 코드는 ... – user268396

+0

당신은 우리에게 (작은) 전체를 표시 할 수 있습니다 excep를 던지는 코드 기각? –

+0

123L에서 int로 캐스팅 시도 –

답변

5

이 나를 위해 작동합니다

from django.db.models.query import ValuesListQuerySet 

def default(o): 
    if isinstance(o, ValuesListQuerySet): 
     return list(o) 
    raise TypeError(repr(o) + " is not JSON serializable") 

json.dumps(valueListObject, default=default)