Rumah > pembangunan bahagian belakang > Tutorial Python > Bolehkah JSON dimuatkan ke dalam OrderedDict untuk Mengekalkan Pesanan Utama?

Bolehkah JSON dimuatkan ke dalam OrderedDict untuk Mengekalkan Pesanan Utama?

Mary-Kate Olsen
Lepaskan: 2024-12-06 22:19:12
asal
867 orang telah melayarinya

Can JSON be Loaded into an OrderedDict to Preserve Key Order?

Memuatkan JSON ke dalam OrderedDict

Dalam JSON, data disimpan dalam pasangan nilai kunci. Susunan pasangan ini tidak dijamin. Walau bagaimanapun, dalam senario tertentu, mengekalkan susunan kunci adalah penting. Timbul persoalan: bolehkah JSON dimuatkan ke dalam kamus tertib (OrderedDict)?

Penyelesaian dengan object_pairs_hook

Ya, JSON boleh dimuatkan ke dalam OrderedDict. Ini dicapai dengan menentukan hujah object_pairs_hook kepada pembina JSONDecoder. Argumen object_pairs_hook mengambil fungsi yang dipanggil untuk setiap pasangan kunci dan nilai dalam objek JSON. Fungsi ini boleh mengembalikan kamus yang dipesan, memastikan susunan kekunci terpelihara. Di bawah ialah contoh:

import json
from collections import OrderedDict

data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
print(json.dumps(data, indent=4))
Salin selepas log masuk

Output:

{
    "foo": 1,
    "bar": 2
}
Salin selepas log masuk

Ini berfungsi kerana fungsi object_pairs_hook mengembalikan objek OrderedDict, yang mengekalkan susunan kekunci.

Alternatif Menggunakan json.load

Pendekatan yang sama boleh digunakan pada fungsi json.load:

data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah JSON dimuatkan ke dalam OrderedDict untuk Mengekalkan Pesanan Utama?. 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