>백엔드 개발 >파이썬 튜토리얼 >Python의 `json.dumps`로 JSON 키 순서를 제어하는 ​​방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-10-27 05:17:03361검색

 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 키가 알파벳순으로 정렬됩니다. 예를 들어, 다음 코드 조각은 원하는 키 순서를 산출합니다:

<code class="python">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)</code>

2. OrderedDict 사용:

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

<code class="python">from collections import OrderedDict

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

json_data = json.dumps(countries)
print(json_data)</code>

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

<code class="python">json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)</code>

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

<code class="python">import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)</code>

위 내용은 Python의 `json.dumps`로 JSON 키 순서를 제어하는 ​​방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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