Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah anda boleh mengawal susunan kunci dalam objek JSON apabila menukar kamus Python menggunakan `json.dumps`?

Bagaimanakah anda boleh mengawal susunan kunci dalam objek JSON apabila menukar kamus Python menggunakan `json.dumps`?

Barbara Streisand
Lepaskan: 2024-10-29 21:17:30
asal
1044 orang telah melayarinya

How can you control the order of keys in JSON objects when converting Python dictionaries using `json.dumps`?

Menyusun Semula Item dalam Objek JSON menggunakan "json.dumps"

Isu kekunci tidak tertib dalam objek JSON timbul apabila menggunakan fungsi "json.dumps" untuk menukar Python kamus kepada format JSON, yang membawa kepada pesanan yang tidak dijangka. Ini berlaku kerana kedua-dua kamus Python dan objek JSON tidak mempunyai susunan yang wujud.

Untuk menangani perkara ini, parameter "sort_keys" boleh digunakan dalam "json.dumps" untuk mengisih kekunci dalam susunan abjad menaik. Berikut ialah contoh:

<code class="python">import json

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

print(json.dumps(countries, sort_keys=True))</code>
Salin selepas log masuk

Ini menghasilkan output yang diingini dengan kekunci diisih:

<code class="json">[
  {"id": 1, "name": "Mauritius", "timezone": 4},
  {"id": 2, "name": "France", "timezone": 2},
  {"id": 3, "name": "England", "timezone": 1},
  {"id": 4, "name": "USA", "timezone": -4}
]</code>
Salin selepas log masuk

Pilihan lain melibatkan penggunaan kelas "collections.OrderedDict", yang mengekalkan susunan kunci- pasangan nilai. Berikut ialah contoh:

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

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

print(json.dumps(countries))</code>
Salin selepas log masuk

Ini juga menghasilkan output JSON yang tersusun:

<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
Salin selepas log masuk

Sejak Python 3.6, susunan hujah kata kunci dipelihara secara lalai, menyediakan cara yang lebih diperkemas untuk mencapai susunan yang diingini:

<code class="python">countries = {
    "id": 1,
    "name": "Mauritius",
    "timezone": 4
}

print(json.dumps(countries))</code>
Salin selepas log masuk

Akhir sekali, jika input anda diberikan sebagai JSON, hujah "object_pairs_hook" boleh digunakan dalam "json.loads" untuk mengekalkan susunan sebagai "OrderedDict":

<code class="python">json_input = '{"a": 1, "b": 2}'

ordered_dict = json.loads(json_input, object_pairs_hook=OrderedDict)
print(ordered_dict)</code>
Salin selepas log masuk

Ini memastikan pasangan nilai kunci kekal dalam susunan asal yang diberikan dalam input JSON.

Atas ialah kandungan terperinci Bagaimanakah anda boleh mengawal susunan kunci dalam objek JSON apabila menukar kamus Python menggunakan `json.dumps`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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