📜  python json 13: 解析json文件中的多个json对象(1)

📅  最后修改于: 2023-12-03 14:45:59.708000             🧑  作者: Mango

Python JSON 13: 解析JSON文件中的多个JSON对象

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它的语法类似于 JavaScript 中的对象和数组。在 Python 中,可以使用内置的 json 模块来解析和生成 JSON 数据。

在实际的应用程序中,我们可能会遇到一个 JSON 文件包含多个 JSON 对象的情况。本教程将介绍如何使用 Python 来读取和解析这种类型的 JSON 文件。

准备工作

在开始之前,我们需要准备一个包含多个 JSON 对象的 JSON 文件。下面是一个简单的例子,该文件包含两个 JSON 对象:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}
{
    "name": "Jane",
    "age": 25,
    "city": "Los Angeles"
}

为了方便起见,我们将文件保存为 example.json

读取和解析 JSON 文件

在 Python 中,可以使用 json.loads() 函数来解析 JSON 数据。但是,它要求我们将整个 JSON 文件作为一个字符串传递,然后才能对其进行解析。

对于包含多个 JSON 对象的 JSON 文件,我们通常需要先将其读取为一个字符串,然后将其拆分为多个 JSON 对象进行解析。

以下代码演示了如何以这种方式读取和解析 JSON 文件:

import json

# 打开 JSON 文件
with open('example.json', 'r') as f:
    # 读取文件中的所有内容
    data = f.read()

# 将文件内容拆分为多个 JSON 对象
objects = data.split('\n')

# 解析每个 JSON 对象
for obj in objects:
    if obj:
        # 将 JSON 字符串解析为 Python 字典
        person = json.loads(obj)
        
        # 打印每个 JSON 对象的内容
        print(person['name'])
        print(person['age'])
        print(person['city'])

在上面的示例中,首先使用 open() 函数打开 example.json 文件,并使用 read() 函数读取文件中的所有内容。然后,我们使用 split() 函数将文件内容拆分为多个 JSON 对象,并将它们存储在一个名为 objects 的列表中。

接下来,我们使用 for 循环遍历 objects 列表中的每个 JSON 对象。如果当前 JSON 对象不为空,则使用 json.loads() 函数将其解析为 Python 字典,并将其存储在 person 变量中。最后,我们打印每个 person 字典中的内容。

显示结果

运行上面的代码后,将打印每个 JSON 对象的内容:

John
30
New York
Jane
25
Los Angeles
结论

在本教程中,我们学习了如何使用 Python 解析包含多个 JSON 对象的 JSON 文件。首先,我们读取将整个文件作为字符串,然后将其拆分为多个 JSON 对象进行解析。通过这种方式,我们可以对包含多个 JSON 对象的 JSON 文件进行有效的解析。