将json对象添加到未命名的json异常集

时间:2015-02-05 21:39:31

标签: python json dictionary

我这里有一组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所以我可以用完整的文件写回来以相同方式格式化的新对象集?

1 个答案:

答案 0 :(得分:2)

jf现在只是一个Python列表,因此您可以将新词典附加到列表中:

jf.append(jdict)

然后将整个对象写回到您的文件中,替换旧的JSON字符串:

with open(JSON_PATH, mode='w') as wf:
    json.dump(jf, wf)