Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekstrak Pelbagai Objek JSON dari Fail Tunggal dalam Python?

Bagaimana untuk Mengekstrak Pelbagai Objek JSON dari Fail Tunggal dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 07:07:01282semak imbas

How to Extract Multiple JSON Objects from a Single File in Python?

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 = """
{&quot;a&quot;: 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!

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