답변:
JSON 문자열로 인코딩 하기 전에 객체 를 빌드 합니다.
import json
data = {}
data['key'] = 'value'
json_data = json.dumps(data)
JSON은 구조를 나타내는 텍스트 형식 의 직렬화 형식 입니다. 그 자체는 그 구조가 아닙니다.
json_data['key'] = 'value'
때문에 작동하지 않는 을 사용하려고했습니다 json_data
.
pip list
동일한 정보를 제공하고 JSON을 출력 할 수 있습니다.pip list --format=json
파이썬 사전을 만들어 한 줄에 JSON으로 직렬화 할 수 있으며 추악하지도 않습니다.
my_json_string = json.dumps({'key1': val1, 'key2': val2})
사전 (또는 더 복잡한 데이터의 경우 중첩 된 사전)을 구축 할 수있는 솔루션이 이미 제공되어 있지만 객체를 만들려면 'ObjDict'를 사용해보십시오. 이를 통해 json을 생성 (예 : 순서 유지) 할 수 있도록 제어 할 수 있으며 개념을 선호하는 객체로 빌드 할 수 있습니다.
pip install objdict를 먼저 사용하십시오.
from objdict import ObjDict
data = ObjDict()
data.key = 'value'
json_data = data.dumps()
json.dumps
ie를 호출 할 때 알파벳 순서로 정렬 할 수 json.dumps(response, sort_keys=True, indent=4)
있지만 원하는 순서, 그룹화 및 표현이 아닌 알파벳 순서로
EasyDict
라이브러리 ( doc )를 사용할 수 있습니다 .EasyDict를 사용하면 dict 값을 속성으로 액세스 할 수 있습니다 (재귀 적으로 작동). 파이썬 딕트에 대한 자바 스크립트와 유사한 속성 점 표기법.
사용
>>> from easydict import EasyDict as edict >>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}}) >>> d.foo 3 >>> d.bar.x 1 >>> d = edict(foo=3) >>> d.foo 3
[ 설치 ] :
pip install easydict
이전의 모든 대답은 정확합니다. 여기에 또 하나의 쉬운 방법이 있습니다. 예를 들어 Dict 데이터 구조를 만들어 개체를 직렬화하고 역 직렬화합니다.
( 공지 사항 없음 파이썬에서 널없고 나는 의도적으로 당신이 널 (null)을 저장할 수있는 방법을 보여줍니다 및 JSON 널 (null)로 변환이 사용하고 있습니다)
import json
print('serialization')
myDictObj = { "name":"John", "age":30, "car":None }
##convert object to json
serialized= json.dumps(myDictObj, sort_keys=True, indent=3)
print(serialized)
## now we are gonna convert json to object
deserialization=json.loads(serialized)
print(deserialization)