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