Python 的 json模块序列化数据从文件里读取出来或存入文件

Python 的 json 模块用于处理 JSON 格式的数据,可以将 JSON 数据与 Python 数据结构之间相互转换。以下是具体用法,包括从文件读取 JSON 数据以及将数据写入文件:

1. 将 JSON 数据从文件中读取到 Python 数据结构

代码示例:

import json

# 从文件读取 JSON 数据
with open("data.json", "r", encoding="utf-8") as file:
    data = json.load(file)  # 将 JSON 文件内容解析为 Python 数据结构

print(data)

解析过程:

  • json.load():从文件对象读取 JSON 数据并反序列化为 Python 数据结构,如字典或列表。

2. 将 Python 数据结构写入到文件中(序列化为 JSON)

代码示例:

import json

# 创建一个 Python 数据结构
data = {
    "name": "Alice",
    "age": 25,
    "skills": ["Python", "Machine Learning"]
}

# 将数据写入到 JSON 文件
with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

print("数据已写入 JSON 文件")

序列化过程:

  • json.dump():将 Python 数据结构写入到文件,同时序列化为 JSON 格式。
  • 参数说明:
    • ensure_ascii=False:允许输出非 ASCII 字符(如中文)。
    • indent=4:设置缩进,提高可读性。

3. JSON 与 Python 数据结构对应关系

JSON 数据类型Python 数据类型
对象(Object)字典(dict)
数组(Array)列表(list)
字符串(String)字符串(str)
数字(Number)整数(int)或浮点数(float)
布尔值(Boolean)布尔值(True/False)
空值(null)None

4. 其他常用方法

  1. 从字符串中加载 JSON 数据:python复制代码
json_data = '{"name": "Bob", "age": 30}'
data = json.loads(json_data)
print(data)  # 输出 Python 字典:{'name': 'Bob', 'age': 30}

2. 将 Python 数据结构转换为 JSON 字符串:

data = {"name": "Bob", "age": 30}
json_data = json.dumps(data, ensure_ascii=False, indent=2)
print(json_data)

5. 常见问题及解决方法

  1. 文件编码问题:
    • 如果处理非 ASCII 字符(如中文),需设置 encoding="utf-8",并在序列化时设置 ensure_ascii=False
  2. ValueError 异常:
    • 如果 JSON 文件格式错误或内容不完整,json.load() 会抛出异常。
    • 可使用在线 JSON 校验工具(如 jsonlint)检查格式。

JSON 模块是处理轻量级数据交换格式的强大工具,尤其适用于配置文件、API 数据处理等场景。通过 loaddump 方法,可以轻松实现文件与数据的转换操作。

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4571

Like (0)
Previous 2024年11月26日 上午11:18
Next 2024年11月26日 上午11:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信