Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengawal Pesanan Kunci JSON dengan `json.dumps` Python?

Bagaimana untuk Mengawal Pesanan Kunci JSON dengan `json.dumps` Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 05:17:03258semak imbas

 How to Control JSON Key Order with Python's `json.dumps`?

Ketidakkonsistenan Pesanan Utama JSON Apabila Menggunakan "json.dumps"

Dalam Python, penukaran JSON selalunya memerlukan penggunaan "json.dumps" untuk mengubah kamus ke dalam objek JSON. Walau bagaimanapun, pengguna mungkin menghadapi ketidakkonsistenan dalam susunan kunci JSON yang terhasil, dengan urutan jangkaan (id, nama, zon waktu) berbeza daripada output sebenar (zon waktu, id, nama).

Untuk menyelesaikan isu ini dan menguatkuasakan susunan kunci yang dikehendaki, dua pendekatan tersedia:

1. Menggunakan Parameter "kunci_isih":

Parameter "kunci_isih", apabila ditetapkan kepada Benar, mengisih kekunci JSON mengikut abjad. Sebagai contoh, coretan kod berikut akan menghasilkan susunan kunci yang diingini:

<code class="python">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)</code>

2. Menggunakan OrderedDict:

"collections.OrdedDict" Python mengekalkan susunan sisipan kunci. Dengan menggunakan OrderedDict, susunan kunci yang dijangkakan boleh dicapai:

<code class="python">from collections import OrderedDict

countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4

json_data = json.dumps(countries)
print(json_data)</code>

Dalam Python 3.6 dan ke atas, susunan hujah kata kunci dipelihara secara lalai, membenarkan sintaks yang lebih ringkas:

<code class="python">json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)</code>

Akhir sekali, untuk input JSON, parameter "object_pair_hook" boleh digunakan untuk mengekalkan susunan objek dan menjana OrderedDict:

<code class="python">import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)</code>

Atas ialah kandungan terperinci Bagaimana untuk Mengawal Pesanan Kunci JSON dengan `json.dumps` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn