프로그래밍 언어/Python

OrderedDict에 JSON을 로드 하는 방법

Rateye 2021. 8. 28. 16:32
728x90
반응형

 

질문 : OrderedDict에 JSON을로드 할 수 있습니까?

json.dump 에서 OrderedDict를 사용할 수 있습니다. 즉, OrderedDict를 JSON에 대한 입력으로 사용할 수 있습니다.

그러나 출력으로 사용할 수 있습니까? 그렇다면 어떻게? 제 경우에는 파일의 키 순서를 유지할 수 있도록 OrderedDict load

그렇지 않은 경우 해결 방법이 있습니까?

답변

그래 넌 할수있어. JSONDecoder에 object_pairs_hook 인수를 지정합니다. 실제로 이것은 문서에 제공된 정확한 예입니다.

>>> json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode('{"foo":1, "bar": 2}')
OrderedDict([('foo', 1), ('bar', 2)])
>>> 

다음과 같이이 매개 변수를 json.loads 전달할 수 있습니다 (다른 용도로 Decoder 인스턴스가 필요하지 않은 경우).

>>> import json
>>> from collections import OrderedDict
>>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
>>> print json.dumps(data, indent=4)
{
    "foo": 1,
    "bar": 2
}
>>>

json.load 사용도 같은 방식으로 수행됩니다.

>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
        
출처 : https://stackoverflow.com/questions/6921699/can-i-get-json-to-load-into-an-ordereddict
728x90
반응형