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
Lepaskan: 2024-12-02 13:45:12
asal
648 orang telah melayarinya

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}')
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

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