Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memuatkan Fail JSON Besar dengan Cekap tanpa Membebankan Memori Sistem?
Pemuatan Fail JSON yang Cekap dan Pantas
Memuatkan fail JSON yang besar selalunya boleh membebankan sumber memori sistem apabila menggunakan json.load( yang mudah ) kaedah. Isu ini berpunca daripada keperluan untuk memuatkan keseluruhan kandungan fail ke dalam memori sekali gus.
Penyelesaian yang berpotensi adalah dengan memanfaatkan teknik memuatkan separa fail. Dalam kes fail teks yang dibatasi baris, seseorang boleh mengulangi baris. Adakah terdapat pendekatan yang serupa untuk fail JSON?
ijson: Penghurai Seperti SAX untuk JSON
Penyelesaian kepada masalah ini ditemui dalam perpustakaan ijson. Pustaka ini menawarkan pendekatan penghuraian seperti SAX, serupa dengan cara pustaka SAX mengendalikan XML. Berikut menggariskan penggunaan sampel:
<code class="python">import ijson for prefix, the_type, value in ijson.parse(open(json_file_name)): print(prefix, the_type, value)</code>
Dalam kod ini, awalan mewakili indeks yang dipisahkan titik dalam pepohon JSON, the_type menentukan jenis acara gaya SAX (mis., mula/akhir peta/tatasusunan , null, rentetan, dsb.), dan nilai ialah nilai objek atau Tiada jika the_type ialah peristiwa.
Batasan dan Petua
Perhatikan bahawa ijson menganggap nama utama tidak mengandungi titik. Selain itu, dokumentasinya agak terhad. Adalah disyorkan untuk meneroka kod sumber untuk mendapatkan pemahaman yang lebih mendalam tentang fungsinya.
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Fail JSON Besar dengan Cekap tanpa Membebankan Memori Sistem?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!