首页 前端知识 如何在 Python 中读取 JSON 文件

如何在 Python 中读取 JSON 文件

2024-10-30 21:10:38 前端知识 前端哥 128 666 我要收藏

JSON(JavaScript 对象表示法)是一种流行的数据存储和交换格式。由于其轻量且易于阅读,因此常用于 Web 应用程序、API 和数据库。JSON 以键值对的形式构造数据,因此易于在不同平台上使用。

在 Python 中,处理 JSON 文件非常容易,因为 Python 有内置库,例如 json,它可以轻松读取、解析和处理 JSON 数据。无论您是处理本地文件还是从 Web 服务获取数据,Python 都有工具可以很好地处理 JSON 数据。

本文将介绍如何在 Python 中读取 JSON 文件、加载和解析 JSON 数据以及如何使用其结构。您还将学习如何修改和写入 JSON 数据。让我们开始吧!

目录

  1. 什么是 JSON 文件?
  2. 在 Python 中加载 JSON 数据
  • 运用 json.load() 从文件读取 JSON
  • 使用以下方法从字符串读取 JSON json.loads()
  1. Python 中 JSON 的常见操作
  • 访问嵌套数据
  • 修改 JSON 数据
  • 使用以下方法将 JSON 数据写入文件 json.dump()
  1.  读取 JSON 文件时的错误处理
  2. 总结
  3. 常见问题解答(FAQ)

什么是 JSON 文件?

JSON 文件(JavaScript 对象表示法文件)是一种用于存储和交换数据的文本文件。它使用键值对以结构化且可读的方式存储数据,其中每个键都与一个值相关联。这使得人类和机器可以轻松读取和写入数据。JSON 用于 Web 应用程序、API 和配置,因为它轻量且易于使用。

以下是一个简单 JSON 文件的示例:

{
  “名称”: “简·史密斯”,
  “年龄”: 28,
  “是开发者”: true,
  “语言”: [“Python”, “JavaScript”, “SQL”]
}

在此示例中,文件包含有关名为“Jane Smith”的人的信息,她今年 28 岁,是一名开发人员。 languages key 保存着她所知道的编程语言的数组。

您可以使用 Python 读取、写入和保存 JSON 文件。让我们看看如何操作。

在 Python 中加载 JSON 数据

由于内置了 json 模块,在 Python 中加载 JSON 非常简单。无论 JSON 是在文件中还是字符串中,Python 都有加载和解析它的方法。在本节中,我们将介绍两种加载 JSON 的方法:从文件和从字符串加载。

运用 json.load() 从文件读取 JSON

在 Python 中处理 JSON 文件时,你可以使用 json.load() 直接从文件加载数据。此方法读取文件并将其解析为 Python 对象(通常是字典)。

以下是如何读取 JSON 文件的示例:

进口 JSON

# 打开 JSON 文件并加载其内容
- 打开(‘数据.json’, 'r') as 文件:
    数据 = json.load(文件)

# 打印解析后的数据
打印(数据)

在此代码中,我们使用 open() 以读取模式打开文件的函数(‘r’),然后将文件对象传递给 json.load() 读取 JSON 并将其解析为 Python 字典。然后,您可以使用键访问数据。

例如,如果你的 data.json 文件包含以下内容:

{
  “名称”: 爱丽丝,
  “年龄”: 25,
  “是否就业”: true
}

输出将是:

{“名称”: “爱丽丝”, '年龄': 25, ‘已就业’: 真}

使用以下方法从字符串读取 JSON json.loads()

如果 JSON 是字符串,则可以使用 json.loads() 对其进行解析。这在处理从 API 或其他外部源检索的 JSON 数据时非常有用。

下面是一个例子:

进口 JSON

JSON 字符串

json_string = '{“product”:“笔记本电脑”,“price”:999,“inStock”:true}'

# 将字符串解析为 Python 字典

数据 = json.loads(json_string)

# 打印解析后的数据

打印(数据)

在这个例子中, json.loads() 获取 JSON 字符串并将其转换为 Python 字典。然后,您可以像访问文件一样访问数据。

例如,输出将是:

{'产品': '笔记本电脑', '价格': 999, '有存货': 真}

接下来我们将介绍在 Python 中对 JSON 执行的常见操作。

Python 中 JSON 的常见操作

将 JSON 数据加载到 Python 后,您可以用它做各种事情,例如访问嵌套数据、修改数据以及将更改保存回文件。让我们通过简单示例逐一介绍这些内容。

访问嵌套数据

JSON 数据通常具有嵌套结构,例如字典中的字典或列表中的列表。使用键值访问或列表索引可以轻松在 Python 中访问这些嵌套数据。

例如::

进口 JSON

# 示例 JSON 数据
json_数据= '''
{
    “名称”:“爱丽丝”,
    “年龄”:25,
    “地址”: {
        “城市”:“纽约”,
        “邮政编码”:“10001”
    },
    “技能”:[“Python”,“机器学习”]
}
'''

# 解析 JSON 数据
数据 = json.loads(json_data)

# 访问嵌套数据
城市 = 数据['地址']['城市']
技能 = 数据[‘技能’][0]

打印(f"城市: {城市}")
打印(f”第一技能: {技能}")

这里:

  • 我们首先使用以下方法加载 JSON 字符串 json.loads().
  • 我们访问嵌套数据,例如 city 里面的 address 字典和第一项技能 skills 名单。

修改 JSON 数据

加载 JSON 数据后,您可以轻松地在 Python 中修改它。修改可以包括更新值、添加新数据或删除现有键。

例如::

进口 JSON

# 示例 JSON 数据
json_数据= '''
{
    “名称”:“爱丽丝”,
    “年龄”:25,
    “地址”: {
        “城市”:“纽约”,
        “邮政编码”:“10001”
    }
}
'''

# 解析 JSON 数据
数据 = json.loads(json_data)

# 修改年龄并添加新技能
数据['年龄'] = 26
数据[‘技能’] = [“Python”, 《数据科学》]

#打印修改后的数据
打印(json.dumps(数据,缩进=4))

在这个例子中:

  • 我们修改 age 值从 25 到 26。
  • 我们添加一个新键 skills 带有一个值数组。
  • 特 json.dumps() 函数用于以可读的缩进格式打印修改后的JSON数据。

使用以下方法将 JSON 数据写入文件 json.dump()

修改 JSON 数据后,您可能希望将其保存回文件。json.dump() 函数可帮助您将数据以 JSON 格式写回文件。

例如::

进口 JSON

# 写入文件的示例数据
数据 = {
    “名称”: 爱丽丝,
    “年龄”: 26,
    “地址”{
        “市”: “纽约”,
        “邮政编码”: “10001”
    },
    “技能”[“Python”, 《数据科学》]
}

# 将 JSON 数据写入文件
- 打开('修改后的数据.json', 'w') as 文件:
    json.dump(数据,文件,缩进=4)

打印(“JSON 数据已成功写入文件。”)

在这个例子中:

  • 我们修改和组织 Python 字典中的数据。
  • 特 json.dump() 方法将数据写入名为 modified_data.json.
  • 特 indent=4 参数通过添加缩进使 JSON 文件更易读。

学习这些常见操作(访问嵌套数据、修改数据以及将其保存到文件)对于在 Python 中处理 JSON 文件非常重要。它们允许您在许多用例中操作和组织数据。

接下来,我们将介绍读取 JSON 文件时的错误处理,以免您的程序崩溃。

读取 JSON 文件时的错误处理

在 Python 中处理 JSON 数据时,您需要处理读取或解析 JSON 文件时可能发生的错误。错误可能由于多种原因而发生,例如无效的 JSON 语法、不正确的文件路径或文件编码问题。正确的错误处理将确保您的 Python 脚本顺利运行并能从意外错误中恢复。

让我们探讨一些常见的错误以及如何在 Python 中有效地处理它们。

处理找不到文件错误

如果指定的 JSON 文件不存在或文件路径不正确,Python 会引发 FileNotFoundError。 您可以使用 try-except 块来捕获此错误并显示用户友好的消息。

例如::

进口 JSON

尝试:
    # 尝试打开不存在的文件
    - 打开(‘数据.json’, 'r') as 文件:
        数据 = json.load(文件)
除 文件未找到错误:
    打印(“错误:未找到文件。请检查文件路径。”)

在这段代码中:

  • 我们尝试阅读 data.json 文件中。
  • 如果文件不存在, FileNotFoundError 被捕获,并打印一条有意义的错误消息。

处理无效的 JSON 语法

如果 JSON 文件包含无效语法(例如缺少逗号、括号或方括号),Python 会引发 json.JSONDecodeError。您可以使用 try-except 阻止以防止程序崩溃。

例如::

进口 JSON

无效的json= '''
{
    “名称”:“爱丽丝”,
    “年龄”:25,
    “地址”: {
        “城市”:“纽约”
    } # 缺少右括号
'''

尝试:
    # 尝试解析无效的 JSON
    数据 = json.loads(invalid_json)
除 json.JSONDecodeError as e:
    打印(f“错误:JSON 格式无效。 {e}")

这里:

  • 特 invalid_json 字符串缺少右括号。
  • 特 json.JSONDecodeError 被捕获,并打印指定问题的错误消息。

处理错误的文件编码

有时,JSON 文件可能以不同于 UTF-8 的编码保存,这可能会导致读取文件时出现解码错误。Python 的 UnicodeDecodeError 处理这种情况,您可以在打开文件时指定正确的编码以避免出现问题。

例如::

进口 JSON

尝试:
    # 使用特定编码打开文件
    - 打开(‘数据.json’, 'r', 编码='utf-8') as 文件:
        数据 = json.load(文件)
除 UnicodeDecode错误:
    打印(“错误:无法解码文件。请检查文件的编码。”)

在这段代码中:

  • 我们指定 encoding='utf-8' 读取文件时。
  • 如果文件编码有问题, UnicodeDecodeError 被捕获并显示适当的错误消息。

常规异常处理

您还可以使用通用 except 块来捕获读取或使用 JSON 文件时可能发生的任何其他意外错误。

例如::

进口 JSON

尝试:
    # 尝试读取 JSON 文件
    - 打开(‘数据.json’, 'r') as 文件:
        数据 = json.load(文件)
除 特殊课程 as e:
    打印(f“发生意外错误: {e}")

这段代码:

  • 使用通用 Exception 捕获任何不属于特定类别的错误。
  • 打印错误消息以帮助识别问题。

错误处理是处理 JSON 文件的一个重要部分,因为它可以帮助您管理诸如文件丢失、格式不正确和编码问题等问题。通过尽早发现这些错误,您可以确保您的 Python 脚本运行得更顺畅,并且更易于调试。

总结

在 Python 中读取和使用 JSON 文件是开发人员的一项关键技能,尤其是在处理 API、Web 应用程序或数据存储时。Python 的内置 json 模块可以轻松处理 JSON 数据,无论您是从文件读取、解析字符串还是修改数据。

通过学习如何在 Python 中加载、操作和编写 JSON 数据,您可以高效地管理项目中的结构化数据。JSON 的灵活性和可读性使其成为当今使用最广泛的格式之一,借助 Python 的工具,您可以轻松地将其集成到任何应用程序中。

借助本博客中讨论的技术,无论数据结构的复杂性如何,您都应该能够很好地处理 Python 项目中的 JSON 数据。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/19710.html
标签
评论
发布的文章

JSON:API Normalizer 项目教程

2024-10-30 21:10:43

json2html 项目教程

2024-10-30 21:10:41

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!