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

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

Linda Hamilton
Lepaskan: 2024-10-27 05:17:03
asal
363 orang telah melayarinya

 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan