>백엔드 개발 >파이썬 튜토리얼 >`json.dumps`를 사용하여 Python 사전을 변환할 때 JSON 객체의 키 순서를 어떻게 제어할 수 있나요?

`json.dumps`를 사용하여 Python 사전을 변환할 때 JSON 객체의 키 순서를 어떻게 제어할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 21:17:30965검색

How can you control the order of keys in JSON objects when converting Python dictionaries using `json.dumps`?

"json.dumps"를 사용하여 JSON 개체의 항목 순서 변경

"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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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