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
Mary-Kate Olsenasal
2024-12-06 22:19:12801semak imbas

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))

Output:

{
    "foo": 1,
    "bar": 2
}

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)

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!

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