prosource

JSON은 Python 사전을 어떻게 직렬화합니까?

probook 2023. 4. 3. 21:35
반응형

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: 트레이스백을 다음에 나타냅니다.

http://dpaste.com/38786/

업데이트: 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

반응형