python - 附加到python中的json文件
问题描述
我正在尝试将元素附加到 json 文件
import json
person = {
"fname": "Chris",
"lname": "Morten",
"age": "25"
}
with open("guest.json", "a") as file:
json.dump(person, file, indent=3, ensure_ascii=False)
我只想添加一次人物变量
**和用户在同一个文件中的输入**
f_name = input("What is your name? ")
l_name = input("What is your last name? ")
age = input("How old are you? ")
x = []
x.append({
"fname": f_name,
"lname": l_name,
"age": age
})
with open("guest.json", "a") as file:
json.dump(x, file, indent=3)
每次我再次运行程序人字典变量时,结果将是这样的:
{
"fname": "Chris",
"lname": "Morten",
"age": "25"
}[
{
"fname": "nour",
"lname": "ash",
"age": "20"
}
]{
"fname": "Chris",
"lname": "Morten",
"age": "25"
}[
{
"fname": "nori",
"lname": "sori",
"age": "33"
}
]
有人能帮我吗?
解决方案
第 1 步是读取旧的 json 文件。如果文件不存在,请记住创建一个空列表。
if <file exists>:
with open("guest.json", "r") as jsonfile:
guests = json.load(jsonfile)
else:
guests = [] # no guests. make an empty list
然后,将新客人添加到您已阅读的内容中。
f_name = input("What is your name? ")
l_name = input("What is your last name? ")
age = input("How old are you? ")
guests.append({
"fname": f_name,
"lname": l_name,
"age": age
})
最后,将整个列表写入文件。不要附加-json.dump
会将整个序列化列表转储到文件中,包括您的旧客人。
with open("guest.json", "w") as jsonfile:
guests = json.dump(guests, jsonfile)
推荐阅读
- amazon-ec2 - 我可以暂停 AWS DMS 复制实例吗?
- c# - ThreadPool 线程进行 I/O 操作 - 等待时可以重用线程吗?
- vue.js - vue-router: how to check if current route is a route or one of its subroutes?
- html - Html span element does not get hidden
- ajax - ajax无法调用codeigniter的功能
- python - 基本矩阵估计错误轴上的运动
- mvvm - 测试 ViewState 的 PublishSubject
- apostrophe-cms - How and where to store user settings per session?
- tfs - 为 TFS Git 存储库使用 TFS 代理服务器
- angular - Angular:如何将自定义指令注入组件