"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python의 `json.dumps`로 JSON 키 순서를 제어하는 ​​방법은 무엇입니까?

Python의 `json.dumps`로 JSON 키 순서를 제어하는 ​​방법은 무엇입니까?

2024-11-08에 게시됨
검색:935

 How to Control JSON Key Order with Python\'s `json.dumps`?

"json.dumps" 사용 시 JSON 키 순서 불일치

Python에서 JSON 변환은 변환을 위해 "json.dumps"를 활용하는 경우가 많습니다. 사전을 JSON 개체로 변환합니다. 그러나 예상되는 순서(ID, 이름, 시간대)가 실제 출력(시간대, ID, 이름)과 다르기 때문에 결과 JSON 키 순서에서 불일치가 발생할 수 있습니다.

이 문제를 해결하고 시행하려면 원하는 키 순서에 대해 두 가지 접근 방식을 사용할 수 있습니다:

1. "sort_keys" 매개변수 활용:

"sort_keys" 매개변수를 True로 설정하면 JSON 키가 알파벳순으로 정렬됩니다. 예를 들어 다음 코드 조각은 원하는 키 순서를 생성합니다.

import json

countries = []
countries.append({"id": 1, "name": "Mauritius", "timezone": 4})
countries.append({"id": 2, "name": "France", "timezone": 2})
countries.append({"id": 3, "name": "England", "timezone": 1})
countries.append({"id": 4, "name": "USA", "timezone": -4})

json_data = json.dumps(countries, sort_keys=True)
print(json_data)

2. OrderedDict 사용:

Python의 "collections.OrderedDict"는 키 삽입 순서를 유지합니다. OrderedDict를 활용하면 예상되는 키 순서를 얻을 수 있습니다.

from collections import OrderedDict

countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4

json_data = json.dumps(countries)
print(json_data)

Python 3.6 이상에서는 키워드 인수 순서가 기본적으로 유지되므로 보다 간결한 구문이 가능합니다.

json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)

마지막으로 JSON 입력의 경우 "object_pair_hook" 매개변수를 사용하여 객체 순서를 유지하고 OrderedDict를 생성할 수 있습니다.

import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3