如何在Python中向JSON文件追加新用户条目?
向JSON文件追加用户条目的可行方案
你的原代码直接追加JSON字符串会导致文件变成无效的JSON格式(比如出现{"ali":...}{"newuser":...}这种结构,完全不符合JSON规范),正确的做法是先读取并解析现有文件,更新数据后再整体写入,具体方案如下:
核心思路
- 读取现有JSON文件内容,解析成Python字典(如果文件还未创建,就初始化一个空字典)
- 把新用户数据添加到这个字典里
- 将更新后的字典重新转为合法的JSON字符串,覆盖写入原文件
修正后的代码
import json name = input("name: ") age = input("age: ") email = input("email: ") # 读取现有数据,处理文件不存在的情况 try: with open('info.json', 'r') as f: users = json.load(f) except FileNotFoundError: users = {} # 添加新用户到字典 users[name] = {"name": name, "age": age, "email": email} # 重新写入文件(覆盖原内容,保证JSON结构合法) with open('info.json', 'w') as f: json.dump(users, f, indent=2) # indent=2让输出的JSON格式更美观,可选参数
补充说明
- 用
json.load()解析现有文件,确保拿到的是可操作的Python字典 - 处理
FileNotFoundError是为了应对文件还未创建的场景,避免程序报错 - 绝对不要用
追加模式('a')写入JSON,因为JSON要求整个文件是单一的合法结构,追加操作会直接破坏这种结构
内容的提问来源于stack exchange,提问作者Ahmed Faisal
相关产品推荐
相关产品推荐

