"json.dumps" 함수를 사용하여 Python을 변환할 때 JSON 개체에서 순서가 지정되지 않은 키 문제가 발생합니다. JSON 형식으로 사전을 변환하여 예상치 못한 순서가 발생합니다. 이는 Python 사전과 JSON 객체 모두 고유한 순서가 부족하기 때문에 발생합니다.
이 문제를 해결하려면 "json.dumps" 내에서 "sort_keys" 매개변수를 사용하여 키를 알파벳 오름차순으로 정렬할 수 있습니다. 예는 다음과 같습니다.
<code class="python">import json countries = [ {"id": 1, "name": "Mauritius", "timezone": 4}, {"id": 2, "name": "France", "timezone": 2}, {"id": 3, "name": "England", "timezone": 1}, {"id": 4, "name": "USA", "timezone": -4} ] print(json.dumps(countries, sort_keys=True))</code>
정렬된 키를 사용하여 원하는 출력을 생성합니다.
<code class="json">[ {"id": 1, "name": "Mauritius", "timezone": 4}, {"id": 2, "name": "France", "timezone": 2}, {"id": 3, "name": "England", "timezone": 1}, {"id": 4, "name": "USA", "timezone": -4} ]</code>
또 다른 옵션은 키 순서를 유지하는 "collections.OrderedDict" 클래스를 사용하는 것입니다. 값 쌍. 예는 다음과 같습니다.
<code class="python">from collections import OrderedDict countries = OrderedDict([ ("id", 1), ("name", "Mauritius"), ("timezone", 4) ]) print(json.dumps(countries))</code>
이 역시 순서가 지정된 JSON 출력이 됩니다.
<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
Python 3.6부터 키워드 인수 순서는 기본적으로 유지되어 보다 간소화된 방법을 제공합니다. 원하는 순서를 달성합니다.
<code class="python">countries = { "id": 1, "name": "Mauritius", "timezone": 4 } print(json.dumps(countries))</code>
마지막으로 입력이 JSON으로 제공되는 경우 "json.loads" 내에서 "object_pairs_hook" 인수를 사용하여 순서를 "OrderedDict"로 보존할 수 있습니다.
<code class="python">json_input = '{"a": 1, "b": 2}' ordered_dict = json.loads(json_input, object_pairs_hook=OrderedDict) print(ordered_dict)</code>
이렇게 하면 키-값 쌍이 JSON 입력에 제공된 원래 순서로 유지됩니다.
위 내용은 `json.dumps`를 사용하여 Python 사전을 변환할 때 JSON 객체의 키 순서를 어떻게 제어할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!