如何在 Python 中從單一檔案中提取多個 JSON 物件?

Patricia Arquette
發布: 2024-10-28 07:07:01
原創
289 人瀏覽過

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

從單一檔案中提取多個JSON 物件

在遇到包含多個物件的JSON 檔案的情況下,隔離特定字段的任務變得至關重要。一種方法涉及利用 json.JSONDecoder.raw_decode 方法。

raw_decode 提供了迭代解碼大型 JSON 字串的能力。它繼續解析,直到遇到有效的 JSON 對象,同時追蹤最後一個非空白位置。這允許透過提供前一個結束位置作為參數來重複呼叫 raw_decode。

但是,Python 的 JSON 模組需要無空格輸入。因此,需要進行預處理來刪除前面的空格。提供的程式碼透過利用 NOT_WHITESPACE 正規表示式來定位初始非空字元來解決此問題。

<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>
登入後複製

輸出示範了從輸入字串中成功提取多個 JSON 物件:

{'a': 1}
[1, 2]
登入後複製

以上是如何在 Python 中從單一檔案中提取多個 JSON 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!