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

조회수 3231회

발생하는 문제 및 실행환경

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

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

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)
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)