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

Bolehkah JSON dimuatkan ke dalam Python OrderedDict untuk Memelihara Pesanan Utama?

Linda Hamilton
Linda Hamiltonasal
2024-12-02 13:45:12732semak imbas

Can JSON be Loaded into a Python OrderedDict to Preserve Key Order?

Memuatkan JSON ke dalam OrderedDict

Dalam Python, OrderedDict mengekalkan susunan kuncinya, tidak seperti kamus biasa. Walaupun ada kemungkinan untuk membuang OrderedDict ke dalam JSON menggunakan json.dump, bolehkah kita juga memuatkan JSON kembali ke dalam OrderedDict untuk mengekalkan susunan kunci asal?

Memuatkan JSON ke dalam OrderedDict

Untuk memuatkan JSON ke dalam OrderedDict, gunakan argumen object_pairs_hook dalam Kelas JSONDecoder atau dalam json.loads dan json.load. Argumen ini menentukan fungsi yang akan dipanggil pada setiap pasangan kunci dan nilai dalam objek JSON semasa ia dimuatkan.

Sebagai contoh, untuk memuatkan JSON ke dalam OrderedDict menggunakan kelas JSONDecoder:

import json
from collections import OrderedDict

decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict)
data = decoder.decode('{"foo": 1, "bar": 2}')

Anda juga boleh menghantar hujah object_pairs_hook terus ke json.loads:

import json
from collections import OrderedDict

data = json.loads('{"foo": 1, "bar": 2}', object_pairs_hook=Collections.OrderedDict)

Atau apabila membuka fail JSON:

import json
from collections import OrderedDict

with open('config.json') as f:
    data = json.load(f, object_pairs_hook=OrderedDict)

Ini akan memuatkan data JSON ke dalam OrderedDict sambil mengekalkan susunan asal kekunci.

Atas ialah kandungan terperinci Bolehkah JSON dimuatkan ke dalam Python OrderedDict untuk Memelihara 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