🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

Python 将数据保存到本地 JSON 文件

基本方法:使用 json.dump()

关键参数说明:

备选方法:使用 json.dumps() 先转字符串再写入

保存列表/批量数据示例

注意事项

追加数据到现有 JSON 文件

验证保存的文件


Python 将数据保存到本地 JSON 文件

在 Python 中,可以使用内置的 json 模块将数据保存为 JSON 文件。以下是几种常用方法和详细说明:

基本方法:使用 json.dump()

这是最常用、最直接的方式,适合将 Python 对象直接写入文件。

import json

# 准备要保存的数据(可以是字典、列表等)
data = {
    "name": "张三",
    "age": 25,
    "is_student": True,
    "hobbies": ["编程", "阅读", "运动"],
    "address": {
        "city": "北京",
        "street": "中关村大街"
    }
}

# 保存到 JSON 文件
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

关键参数说明:

  • ensure_ascii=False:确保输出的 JSON 包含原始的非 ASCII 字符(如中文),而不是转义为 Unicode
  • indent=4:使用 4 个空格缩进,使 JSON 文件更易读
  • encoding='utf-8':指定文件编码为 UTF-8,避免中文乱码

备选方法:使用 json.dumps() 先转字符串再写入

当需要对 JSON 字符串进行额外处理时使用:

import json

data = {
    "name": "张三",
    "age": 25,
    "hobbies": ["编程", "阅读"]
}

# 先转换为 JSON 字符串
json_str = json.dumps(data, ensure_ascii=False, indent=4)

# 写入文件
with open('data.json', 'w', encoding='utf-8') as f:
    f.write(json_str)

保存列表/批量数据示例

JSON 也支持保存列表结构,适合存储多条记录:

import json

users = [
    {"id": 1, "name": "张三", "age": 25},
    {"id": 2, "name": "李四", "age": 30},
    {"id": 3, "name": "王五", "age": 22}
]

with open('users.json', 'w', encoding='utf-8') as f:
    json.dump(users, f, ensure_ascii=False, indent=2)

注意事项

  1. 中文乱码问题:必须使用 ensure_ascii=Falseencoding='utf-8',否则中文会显示为 Unicode 编码
  2. 文件覆盖:使用 w 模式会覆盖原文件内容,如需追加数据需先读取原文件
  3. 不支持的数据类型
    • 不能直接保存自定义对象(如类实例)
    • 不支持 setdatetime 等类型,需先转换为字典或使用 default 参数处理
  4. JSON 格式要求:JSON 键必须是字符串,且必须使用双引号

追加数据到现有 JSON 文件

如果需要向已存在的 JSON 文件追加数据,可以这样操作:

import json
import os

def append_to_json(file_path, new_data):
    # 如果文件存在,读取现有数据
    if os.path.exists(file_path):
        with open(file_path, 'r', encoding='utf-8') as f:
            data = json.load(f)
    else:
        data = []
    
    # 添加新数据
    data.append(new_data)
    
    # 保存回文件
    with open(file_path, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=4)

# 使用示例
append_to_json('users.json', {"id": 4, "name": "赵六", "age": 28})

验证保存的文件

可以使用以下代码验证文件是否正确保存:

import json

with open('data.json', 'r', encoding='utf-8') as f:
    loaded_data = json.load(f)
    
print("数据加载成功:", loaded_data)
print("姓名:", loaded_data["name"])
print("第一个爱好:", loaded_data["hobbies"][0])

以上就是 Python 将数据保存到本地 JSON 文件的完整方法,使用简单且兼容性好,是处理结构化数据的常用方式。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐