>백엔드 개발 >파이썬 튜토리얼 >키 순서를 보존하기 위해 JSON을 OrderedDict에 로드할 수 있나요?

키 순서를 보존하기 위해 JSON을 OrderedDict에 로드할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-06 22:19:12800검색

Can JSON be Loaded into an OrderedDict to Preserve Key Order?

OrderedDict에 JSON 로드

JSON에서 데이터는 키-값 쌍으로 저장됩니다. 이러한 쌍의 순서는 보장되지 않습니다. 그러나 특정 시나리오에서는 키 순서를 유지하는 것이 중요합니다. 질문이 생깁니다: JSON을 순서가 지정된 사전(OrderedDict)에 로드할 수 있습니까?

object_pairs_hook을 사용한 솔루션

예, JSON을 OrderedDict에 로드할 수 있습니다. 이는 JSONDecoder 생성자에 object_pairs_hook 인수를 지정하여 달성됩니다. object_pairs_hook 인수는 JSON 개체의 각 키와 값 쌍에 대해 호출되는 함수를 사용합니다. 이 함수는 순서가 지정된 사전을 반환하여 키 순서가 유지되도록 할 수 있습니다. 다음은 예입니다.

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
}

이는 object_pairs_hook 함수가 키 순서를 유지하는 OrderedDict 개체를 반환하기 때문에 작동합니다.

대체 사용 json.load

json.load 함수에도 동일한 접근 방식을 적용할 수 있습니다.

data = json.load(open('config.json'), object_pairs_hook=OrderedDict)

위 내용은 키 순서를 보존하기 위해 JSON을 OrderedDict에 로드할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.