如何在 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学习者快速成长!