将 json 个对象添加到未命名的 json 个异议集中

Adding json object to unnamed set of json objections

我这里有一组 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 并构建一个包含新对象参数的新字典对象:

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 破解文件来做到这一点,但是我如何在 jf 的末尾添加 jdict返回以相同方式格式化的全新对象集?

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

jf.append(jdict)

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

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