Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengawal Pesanan Kunci JSON dengan `json.dumps` Python?
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!