2010-01-27 3 views
24

클라이언트와 Django 서버간에 정보를 보내고 있습니다. JSON을 사용하고 싶습니다. 간단한 정보 - 문자열 목록 전송 중입니다. 나는 django.core.serializers를 사용했지만, 내가했을 때, 나는이는 장고 객체에 사용할 수있는 것 같다목록을 JSON에 serialize

AttributeError: 'str' object has no attribute '_meta' 

을 얻었다. 어떻게 간단한 파이썬 객체를 직렬화 할 수 있습니까? 당신은 그것을 할 순수한 파이썬을 사용할 수 있습니다

+2

이 오류가 발생한 실제 코드의 스 니펫을 포함 할 수 있습니까? –

답변

46

:

import json 
list = [1, 2, (3, 4)] # Note that the 3rd element is a tuple (3, 4) 
json.dumps(list) # '[1, 2, [3, 4]]' 
+2

아, 2.6 버전의 새로운 모듈입니다. 저는 simplejson을 사용할 필요가 없습니다. 고마워요 :-) – gruszczy

+0

이 파일에서 JSON_ARRAY가 다른 JSON_ARRAY의 직접적인 하위이기 때문에 단순히 덤프 된 JSON 파일을 구문 분석 할 수 없습니다. –

4

파이썬 2.5을 사용하여, 당신은 수입해야 할 수 있습니다 simplejson : 당신은 장고에 대해합니까 무엇

try: 
    import json 
except ImportError: 
    import simplejson as json 
2

네,하지만 다음 사물? 간단한 json은 그들을 질식시키는 경향이 있습니다. 객체가 개별 모델 객체 (안 검색어 세트, 예를 들면) 인 경우

, 나는 가끔과 같이, 모델 객체 유형과 PK를 저장 한 :

seralized_dict = simplejson.dumps(my_dict, 
        default=lambda a: "[%s,%s]" % (str(type(a)), a.pk) 
        ) 

이 역 직렬화하는 개체를 재구성 할 수 model.objects.get()으로 참조됩니다. dict이 저장된 유형의 오브젝트 세부 사항에 관심이있는 경우에는 도움이되지 않지만 어떤 오브젝트가 관련되어 있는지 알아야 할 경우에만 효과적입니다.