Mengekstrak Berbilang Objek JSON daripada Satu Fail
Dalam situasi di mana anda menemui fail JSON yang mengandungi berbilang objek, tugas mengasingkan medan tertentu menjadi penting. Satu pendekatan melibatkan penggunaan kaedah json.JSONDecoder.raw_decode.
raw_decode menawarkan keupayaan untuk menyahkod rentetan JSON yang besar secara berulang. Ia terus menghuraikan sehingga objek JSON yang sah ditemui, sambil menjejaki kedudukan bukan ruang putih terakhir. Ini membenarkan panggilan berulang ke raw_decode dengan menyediakan kedudukan akhir sebelumnya sebagai hujah.
Walau bagaimanapun, modul JSON Python memerlukan input tanpa ruang kosong. Oleh itu, prapemprosesan diperlukan untuk mengalih keluar ruang kosong sebelumnya. Kod yang disediakan menangani perkara ini dengan menggunakan ungkapan biasa NOT_WHITESPACE untuk mencari aksara bukan kosong awal.
<code class="python"># Extract Multiple JSON Objects from json import JSONDecoder, JSONDecodeError import re NOT_WHITESPACE = re.compile(r'\S') def decode_stacked(document, pos=0, decoder=JSONDecoder()): while True: match = NOT_WHITESPACE.search(document, pos) if not match: return pos = match.start() try: obj, pos = decoder.raw_decode(document, pos) except JSONDecodeError: # Handle error accordingly raise yield obj # Example usage s = """ {"a": 1} [ 1 , 2 ] """ for obj in decode_stacked(s): print(obj)</code>
Output menunjukkan kejayaan pengekstrakan berbilang objek JSON daripada rentetan input:
{'a': 1} [1, 2]
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Pelbagai Objek JSON dari Fail Tunggal dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!