首页 > 解决方案 > 如何将条目添加到 JSON 数组/列表

问题描述

我正在尝试设置一个 Discord 机器人,它只允许 JSON 文件中列表中的人使用它,我想知道如何将数据添加到 JSON 数组/列表,但我不确定如何继续前进,我有没有真正的运气在其他地方寻找答案。

这是 JSON 文件外观的示例:

{
    IDs: [
    "2359835092385",
    "4634637576835",
    "3454574836835"
    ]
}

现在,我要做的是向“ID”添加一个新 ID,而不是让它完全中断,我希望能够在 JSON 文件中包含其他条目,这样我就可以制作类似“AdminIDs”的东西对于可以对机器人做更多事情的人。

是的。我知道我可以在公会/服务器中担任这些角色,但我希望能够在 DM 以及公会/服务器上使用该机器人。

我想要/需要的是一个简短且易于操作的脚本,我可以轻松地将其放入新命令中,这样我就可以将新人添加到机器人中,而无需手动打开和编辑 JSON 文件。

标签: jsonpython-3.xdiscord.py

解决方案


所有键都必须被一个字符串包围在这种情况下,键是 ID,而值是列表,而列表的值将是其中的项目

import json

data={
    "IDs":[
    "2359835092385",
    "4634637576835",
    "3454574836835"
    ]
}

假设您的 JSON 数据来自一个文件,要加载它以便您可以操作它,请执行以下操作

raw_json_data=open('filename.json',encoding='utf-8')
j_data=json.load(raw_json_data) #Now j_data is basically the same as data except difference in name
print(j_data)
# >> {'IDs': ['2359835092385', '4634637576835', '3454574836835']}

要在列表 ID 中添加内容,请使用 append 方法

data['IDs'].append('adding something') #or j_data['IDs'].append("SOMEthing")
print(data)
# >> {'IDs': ['2359835092385', '4634637576835', '3454574836835', 'adding something']}

添加新密钥

data['Names']=['Jack','Nick','Alice','Nancy']
print(data)
# >> {'IDs': ['2359835092385', '4634637576835', '3454574836835', 'adding something'], 'Names': ['Jack', 'Nick', 'Alice', 'Nancy']}

推荐阅读