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

Patricia Arquette
Lepaskan: 2024-10-28 07:07:01
asal
289 orang telah melayarinya

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

Output menunjukkan kejayaan pengekstrakan berbilang objek JSON daripada rentetan input:

{'a': 1}
[1, 2]
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!