"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JSON 출력의 키 순서가`json.dumps`를 사용하여 파이썬 사전의 순서와 다른 이유는 무엇입니까?

JSON 출력의 키 순서가`json.dumps`를 사용하여 파이썬 사전의 순서와 다른 이유는 무엇입니까?

2025-02-06에 게시되었습니다
검색:268

Why is the order of keys in my JSON output different from the order in my Python dictionary using `json.dumps`?

"json.dumps"가있는 JSON 객체의 주문 외 객체에서 "&&&]

코드에서"JSON은 "JSON을 사용하고 있습니다. .dumps "사전 목록을 JSON으로 변환합니다. 그러나 각 사전 내의 키 순서는 예상대로 아님을 알았습니다. 구체적으로 "ID", "이름"및 "TimeZone"순서대로 나타나야합니다.

추론

두 Python Dictionaries (Python 전 전 3.7) 및 JSON 객체는 정렬되지 않은 컬렉션입니다. 이것은 사전 또는 JSON 객체에서 키의 순서가 보장되지 않음을 의미합니다.

솔루션 1 : 정렬 키

import json

countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print(json.dumps(countries, sort_keys=True))

import json Country.append ({ "id": row.id, "name": row.name, "timezone": row.timezone}) print (json.dumps (국가, sort_keys = true))

[
   {"id": 1, "name": "Mauritius", "timezone": 4}, 
   {"id": 2, "name": "France", "timezone": 2}, 
   {"id": 3, "name": "England", "timezone": 1}, 
   {"id": 4, "name": "USA", "timezone": -4}
]

[ { "id": 1, "name": "Mauritius", "Timezone": 4}, { "id": 2, "이름": "프랑스", "Timezone": 2}, { "id": 3, "이름": "England", "Timezone": 1}, { "id": 4, "name": "USA", "Timezone": -4} ]

솔루션 2 : OrderedDict 사용

from collections import OrderedDict

countries_by_id = OrderedDict()
countries_by_id["id"] = row.id
countries_by_id["name"] = row.name
countries_by_id["timezone"] = row.timezone

print(json.dumps(countries_by_id))

컬렉션 import orderedDict에서 country_by_id = orderedDict () Country_BY_ID

= row.id country_by_id = row.name Country_by_id = row.timezone print (json.dumps (country_by_id))

이것은 "id", "name"및 "timezone"순서대로 키와 함께 json을 출력합니다.

countries = {"id": row.id, "name": row.name, "timezone": row.timezone}

출력 json에서 키의 순서를 자동으로 보존합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3