【问题标题】:How can I edit/load JSON file in Python如何在 Python 中编辑/加载 JSON 文件
【发布时间】:2021-04-15 08:40:53
【问题描述】:

我查看了几个问题,但无法正常工作!当我的机器人(不和谐机器人)加入新公会或离开公会时,我正在尝试编辑 JSON 文件!

我的默认 JSON 文件如下所示:

{
  "guilds": {

  }
}

我要做的是添加另一个数组,其中将列出公会 ID 和特定服务器的另一个配置。这个我试过了,没用!

@client.event
async def on_guild_join(guild):
    with open('data.json') as f:
        data = json.load(f);

    data["guilds"][guild.id] = {
        "join-message": "Welcome {member} to {server-name}! We hope you enjoy!"
    }

    with open('data.json','w') as f:
        json.dump(f,data);

所以我希望在添加新公会时 JSON 文件看起来像这样:

{
  "guilds": {
      {
        "guild-id": 418718584455,
        "join-message": "Welcome to blablabla"
      },
  }
}

我希望在机器人离开时加入机器人时总是发生这种情况,我将循环通过公会列表并找到正确的然后删除它!

这似乎不起作用,我没有收到任何错误,并且文件没有被编辑!

如果有人知道如何实现,请回复!

【问题讨论】:

    标签: python discord.py bots


    【解决方案1】:
    @client.event
    async def on_guild_join(guild):
        with open('data.json') as f:
            data = json.load(f)
        data["guilds"].append(({"guild-id": guild.id,
                     "join-message": "Welcome {member} to {server-name}! We hope 
                      you enjoy!"
                     }))
    
        with open('data.json','w') as f:
            json.dump(data ,f);
    

    【讨论】:

    • 我能问一下删除这个新数组吗?
    • 删除公会ID ??
    【解决方案2】:

    最后一行应该是这个吗?

    import json
    
    with open('data.json','w') as f:
        json.dump(data, f) # <<--- this one is inverted 
    

    【讨论】:

    • 正如我所说我正在使用教程,所以这可能是错误的,我不知道做这种类型的事情
    • 是答案吗?请尝试 ;)
    • 什么?我之所以添加这一行,是因为在他们编写文件时添加了教程,所以我不知道
    • 您可以查看这篇文章,了解如何将 json 包用于 dump() 函数。 stackabuse.com/reading-and-writing-json-to-a-file-in-python
    • @hongkail 所以 append 函数应该能达到我想要的效果吗?
    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 2017-10-15
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多