"json.dumps" 사용 시 JSON 키 순서 불일치
Python에서 JSON 변환은 변환을 위해 "json.dumps"를 활용하는 경우가 많습니다. 사전을 JSON 개체로 변환합니다. 그러나 예상되는 순서(ID, 이름, 시간대)가 실제 출력(시간대, ID, 이름)과 다르기 때문에 결과 JSON 키 순서에서 불일치가 발생할 수 있습니다.
이 문제를 해결하고 시행하려면 원하는 키 순서에 대해 두 가지 접근 방식을 사용할 수 있습니다:
1. "sort_keys" 매개변수 활용:
"sort_keys" 매개변수를 True로 설정하면 JSON 키가 알파벳순으로 정렬됩니다. 예를 들어 다음 코드 조각은 원하는 키 순서를 생성합니다.
import json
countries = []
countries.append({"id": 1, "name": "Mauritius", "timezone": 4})
countries.append({"id": 2, "name": "France", "timezone": 2})
countries.append({"id": 3, "name": "England", "timezone": 1})
countries.append({"id": 4, "name": "USA", "timezone": -4})
json_data = json.dumps(countries, sort_keys=True)
print(json_data)
2. OrderedDict 사용:
Python의 "collections.OrderedDict"는 키 삽입 순서를 유지합니다. OrderedDict를 활용하면 예상되는 키 순서를 얻을 수 있습니다.
from collections import OrderedDict
countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4
json_data = json.dumps(countries)
print(json_data)
Python 3.6 이상에서는 키워드 인수 순서가 기본적으로 유지되므로 보다 간결한 구문이 가능합니다.
json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)
마지막으로 JSON 입력의 경우 "object_pair_hook" 매개변수를 사용하여 객체 순서를 유지하고 OrderedDict를 생성할 수 있습니다.
import json
json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3