Python 将json对象添加到未命名的json反对集
这里有一组json对象Python 将json对象添加到未命名的json反对集,python,json,dictionary,Python,Json,Dictionary,这里有一组json对象 [ { "group": "GroupName1", "name": "Name1", "nick": "Nick1", "host": "Hostname1", "user": "user1", "sshport": "22", "httpport": "80" }, { "group": "GroupName2", "name": "Name2", "nick": "Nick2
[
{
"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脚本,它接受原始输入并构建一个新的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对文件进行黑客攻击来实现这一点,但是我如何以pythonical方式将jdict
添加到jf
的末尾,这样我就可以用相同格式的全新对象集将文件写回?jf
现在只是一个Python列表,因此,您可以将新词典附加到列表中:
jf.append(jdict)
然后将整个对象写回文件,替换旧的JSON字符串:
with open(JSON_PATH, mode='w') as wf:
json.dump(jf, wf)
和往常一样,我在思考过程中过度复杂了。非常感谢。