\'json.dumps\'를 사용하여 Python 사전을 JSON으로 변환할 때 키 순서를 어떻게 제어합니까?

Barbara Streisand
풀어 주다: 2024-10-26 07:45:30
원래의
588명이 탐색했습니다.

How do I control the order of keys when converting a Python dictionary to JSON using

"json.dumps"를 사용한 JSON 개체 키 순서 지정

문제:

변환 시 "json.dumps"를 사용하여 Python 사전을 JSON 객체로 변환하는 경우 키 순서가 예상과 다를 수 있습니다. 원하는 순서(예: "id", "name", "timezone")가 유지되지 않습니다.

해결 방법:

1. 키 정렬:

원하는 키 순서를 지정하려면 "sort_keys" 매개변수를 "json.dumps"에 전달하세요. 이 매개변수는 키를 오름차순으로 정렬합니다.

json.dumps(countries, sort_keys=True)
로그인 후 복사

2. "OrderedDict" 사용:

키 순서를 정확하게 제어하려면 일반 사전 대신 "컬렉션" 모듈의 "OrderedDict"를 사용하세요. "OrderedDict"의 키 순서는 JSON으로 변환 시 유지됩니다.

Python 3.7 이하:

import json
from collections import OrderedDict

ordered_countries = OrderedDict([("id", row.id), ("name", row.name), ("timezone", row.timezone)])
print(json.dumps(ordered_countries))
로그인 후 복사

Python 3.8 이상:

import json
from collections import OrderedDict

ordered_countries = OrderedDict()
ordered_countries["id"] = row.id
ordered_countries["name"] = row.name
ordered_countries["timezone"] = row.timezone
print(json.dumps(ordered_countries))
로그인 후 복사

3. 입력 순서 유지(JSON):

입력이 이미 JSON 개체이고 출력에서 ​​해당 키 순서를 유지하려는 경우 "object_pairs_hook" 매개 변수를 "json.loads"에 전달합니다. 이 매개변수는 JSON 객체의 키-값 쌍을 기반으로 "OrderedDict"를 반환하는 콜러블을 사용합니다.

import json
from collections import OrderedDict

input_json = '{"a": 1, "b": 2}'
ordered_json = json.loads(input_json, object_pairs_hook=OrderedDict)
로그인 후 복사

위 내용은 \'json.dumps\'를 사용하여 Python 사전을 JSON으로 변환할 때 키 순서를 어떻게 제어합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!