Python dict
(Python 3.7 이전)과 JSON 객체는 모두 순서가없는 컬렉션입니다. sort_keys
키를 정렬하기 위해 매개 변수를 전달할 수 있습니다 .
>>> import json
>>> json.dumps({'a': 1, 'b': 2})
'{"b": 2, "a": 1}'
>>> json.dumps({'a': 1, 'b': 2}, sort_keys=True)
'{"a": 1, "b": 2}'
특정 주문이 필요한 경우 당신은 사용할collections.OrderedDict
수 있습니다 :
>>> from collections import OrderedDict
>>> json.dumps(OrderedDict([("a", 1), ("b", 2)]))
'{"a": 1, "b": 2}'
>>> json.dumps(OrderedDict([("b", 2), ("a", 1)]))
'{"b": 2, "a": 1}'
Python 3.6부터 키워드 인수 순서가 유지되고 더 좋은 구문을 사용하여 위의 내용을 다시 작성할 수 있습니다.
>>> json.dumps(OrderedDict(a=1, b=2))
'{"a": 1, "b": 2}'
>>> json.dumps(OrderedDict(b=2, a=1))
'{"b": 2, "a": 1}'
PEP 468 – 키워드 인수 순서 유지를 참조하십시오 .
귀하의 의견은 JSON으로 지정되고있는 경우, (얻을 수있는 순서를 유지하기 위해 OrderedDict
), 당신은 통과 할 수 object_pair_hook
, @Fred 얀 코스키에 의해 제안 :
>>> json.loads('{"a": 1, "b": 2}', object_pairs_hook=OrderedDict)
OrderedDict([('a', 1), ('b', 2)])
>>> json.loads('{"b": 2, "a": 1}', object_pairs_hook=OrderedDict)
OrderedDict([('b', 2), ('a', 1)])