도와주세요) OrderedDict에 JSON을 불러오는법 문의합니다


발생하는 문제 및 실행환경

json.dump에서 OrderedDict를 쓸 수 있으니 OrderedDict를 JSON의 input으로 쓸 수 있는건 알겠는데

반대로 output으로 쓰려면 어떻게 해야 될까요?

  • 2016년 02월 15일에 작성됨

조회수 190


1 답변


좋아요
0
싫어요
채택취소하기

JSONDecoder에서 인자 object_pairs_hook를 쓰면 가능합니다.

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

이제 이 파라미터를 json.loads에 넘기면

>>> 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)
  • 2016년 02월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close