반응형
JSON은 Python 사전을 어떻게 직렬화합니까?
JSON을 연재하여 반환하기 위한 장고 함수를 만들려고 합니다.HttpResponse
물건.
def json_response(something):
data = serializers.serialize("json", something)
return HttpResponse(data)
이렇게 쓰고 있어요.
return json_response({ howdy : True })
하지만 다음 오류가 발생합니다.
"bool" object has no attribute "_meta"
좋은 생각 있어요?
EDIT: 트레이스백을 다음에 나타냅니다.
업데이트: Python은 자체 json 핸들러를 가지고 있습니다.단순히 사용하세요.import json
사용하는 대신simplejson
.
Django 시리얼라이저 모듈은 Django ORM 개체를 시리얼화하도록 설계되었습니다.일반 Python 사전을 인코딩하려면 Django가 아직 설치되어 있지 않은 경우에 대비하여 동봉된 simplejson을 사용해야 합니다.
import json
def json_response(something):
return HttpResponse(json.dumps(something))
어플리케이션/javascript Content-Type 헤더와 함께 반송하는 것이 좋습니다(어플리케이션/json을 사용할 수도 있지만 브라우저로 디버깅할 수 없습니다).
import json
def json_response(something):
return HttpResponse(
json.dumps(something),
content_type = 'application/javascript; charset=utf8'
)
HttpResponse를 확장하는 JsonResponse 클래스는 어떻습니까?
from django.http import HttpResponse
from django.utils import simplejson
class JsonResponse(HttpResponse):
def __init__(self, data):
content = simplejson.dumps(data,
indent=2,
ensure_ascii=False)
super(JsonResponse, self).__init__(content=content,
mimetype='application/json; charset=utf8')
새로운 버전의 Django에서는 django에서 제공하는 JsonResponse를 사용할 수 있습니다.http:
from django.http import JsonResponse
def my_view(request):
json_object = {'howdy': True}
return JsonResponse(json_object)
자세한 내용은 공식 문서에서 확인할 수 있습니다.
python 2.6 이상에는 멋진 JSON 라이브러리가 있습니다.이 라이브러리에는 오브젝트를 문자열로 시리얼화하는 json.dumps() 함수가 다수 포함되어 있습니다.
다음과 같은 작업을 수행할 수 있습니다.
import json
print json.dumps({'howdy' : True })
import json
my_list = range(1,10) # a list from 1 to 10
with open('theJsonFile.json', 'w') as file_descriptor:
json.dump(my_list, file_descriptor) #dump not dumps, dumps = dump-string
언급URL : https://stackoverflow.com/questions/798111/how-do-i-json-serialize-a-python-dictionary
반응형
'prosource' 카테고리의 다른 글
견인기를 천천히 작동시킬 수 있습니까? (0) | 2023.04.03 |
---|---|
구문 오류 예기치 않은 토큰 U JSON (0) | 2023.04.03 |
Woocommerce 관리 제품 목록에서 열을 추가/제거하는 방법 (0) | 2023.04.03 |
전송 성공 후 연락처 폼을 숨기고 "발송"을 표시하려면 어떻게 해야 합니까? (0) | 2023.04.03 |
WooCommerce AJAX 카트 업데이트 후 jQuery 실행 (0) | 2023.03.29 |