2011-02-10 5 views
0

이 코드가 있습니다장고는 초보자 질문

def encode_myway(obj): 
    if isinstance(obj, User): 
     data = dict() 
     data['username'] = obj.username 
     data['code'] = obj.code //a number = 30 
    return data 

내가 simplejson.dumps(resp, default=encode_myway) 내가 가지고있는 문제를 사용하여 JSON에 대한 직렬화하고있어 그 코드 (정수) NULL로 동일하지만, 내가 serializers.serialize("json", [resp,])를 사용하는 경우 나는 많아요

"[{\"pk\":\29,\\"model\":\\"smapp.userprofile\",\\"fields\":\{\"city\":\\"barcelona\", ... }}]" 
+0

Simplejson은 객체가 아닌 객체 유형을 기반으로 객체를 인코딩하며 None은 null에 매핑되므로 "정수"가 실제로 정수이고 None이 아닌지 다시 한 번 확인하십시오. – Kekoa

+0

어떻게 그쪽으로 obj.code를 확인할 수 있습니까? – david

답변

0

당신은 이중 인코딩 것 같다 :하지만 내 JSON 쓰레기의 정수는 쓰레기에 대한 이런 식으로 뭔가를 참조하십시오 .. 정확합니다. resp의 출처는 표시하지 않지만 이미 JSON 인 것으로 보입니다.

+0

resp는'resp = get_object_or_404 (User, user = user.pk)'에서 나온 것입니다. – david

+0

맞아 .. 제 json 문자열을 두 번 인코딩했습니다 .. 첫 번째'data = serializers.serialize ("json", [resp ,])'출력하고'simplejson.dumps (data)'를 출력합니다. 이제 깨끗한 json 문자열이 있습니다. 어쨌든 나는 아직도 내 상황의 첫 부분에 대해 궁금하다. 왜'simplejson.dumps (resp, default = encode_myway)'를 사용할 때 obj.code가 null이 되는가? – david