Pemuatan JSON yang Cekap dan Sedar Memori
Apabila berurusan dengan fail JSON yang besar, penggunaan memori boleh menjadi kebimbangan yang ketara. Menggunakan fungsi json.load() standard untuk memuatkan keseluruhan fail sekali gus boleh menyebabkan penggunaan memori yang berlebihan.
Pendekatan yang lebih cekap ialah menghuraikan fail JSON secara berperingkat, memuatkan hanya bahagian yang diperlukan ke dalam memori pada sebarang diberi masa. Ini adalah sama dengan lelaran pada baris dalam fail teks.
Memperkenalkan ijson
Untuk pemprosesan JSON, perpustakaan ijson menyediakan antara muka seperti SAX yang membenarkan penghuraian tambahan . Ia memancarkan peristiwa apabila ia menemui elemen berbeza dalam struktur JSON, seperti permulaan dan tamat tatasusunan dan peta, serta nilai yang dikaitkan dengan kekunci.
Menggunakan ijson untuk Menghuraikan Fail JSON yang Besar
Untuk menggunakan ijson untuk menghuraikan fail JSON yang besar, cuma gantikan json.load() dengan ijson.parse() iterator:
import ijson for prefix, event, value in ijson.parse(open(json_file_name)): # Process the event and value according to your needs
Awalan menyediakan laluan seperti pengecam dalam pepohon JSON, acara menunjukkan jenis acara (cth., start_map, rentetan) dan nilai mengandungi nilai sebenar yang dikaitkan dengan acara.
Kelebihan ijson
Petua Tambahan
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, bermain dengan format soalan yang berbeza dan menyerlahkan faedah utama: Soalan Langsung: * Bagaimanakah saya boleh memuatkan fail JSON yang besar dengan cekap tanpa masalah memori? * Apa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!