我这里有一组json对象。
[
{
"group": "GroupName1",
"name": "Name1",
"nick": "Nick1",
"host": "Hostname1",
"user": "user1",
"sshport": "22",
"httpport": "80"
},
{
"group": "GroupName2",
"name": "Name2",
"nick": "Nick2",
"host": "hostname2",
"user": "user2",
"sshport": "22",
"httpport": "80"
}
]
我有一个CLI脚本,它接受raw_input并构建一个包含新对象参数的新dict对象:
def main():
# CLI Input
group_in = raw_input("Group: ")
name_in = raw_input("Name: ")
nick_in = raw_input("Nick: ")
host_in = raw_input("Host: ")
user_in = raw_input("User: ")
sshport_in = raw_input("SSH Port: ")
httpport_in = raw_input("HTTP Port: ")
# New server to add
jdict = {
"group": group_in,
"name": name_in,
"nick": nick_in,
"host": host_in,
"user": user_in,
"sshport": sshport_in,
"httpport": httpport_in
}
假设包含前面提到的json对象的json文件被加载为:
with open(JSON_PATH, mode='r') as rf:
jf = json.load(rf)
我知道如何通过使用readlines / writelines来破解文件来实现这一点,但是我如何在jdict
python的末尾添加jf
所以我可以用完整的文件写回来以相同方式格式化的新对象集?
答案 0 :(得分:2)
jf
现在只是一个Python列表,因此您可以将新词典附加到列表中:
jf.append(jdict)
然后将整个对象写回到您的文件中,替换旧的JSON字符串:
with open(JSON_PATH, mode='w') as wf:
json.dump(jf, wf)