如何在Python中向YAML文件的特定键添加值?

如何在Python中向YAML文件的特定键添加值?,python,yaml,discord.py,Python,Yaml,Discord.py,最近,我更希望使用discord.py bot处理YAML文件。因此,我目前正在考虑如何向YAML文件中的特定键添加值。这是我当前的YAML文件: connected_guilds: - 1st_guild_id 当它连接到另一个公会时,它应该是这样显示的: connected_guilds: - 1st_guild_id - 2nd_guild_id 等等 这是我目前的代码: with open('guilds.yaml', 'r+') as gui

最近,我更希望使用discord.py bot处理YAML文件。因此,我目前正在考虑如何向YAML文件中的特定键添加值。这是我当前的YAML文件:

connected_guilds:
    - 1st_guild_id
当它连接到另一个公会时,它应该是这样显示的:

connected_guilds:
    - 1st_guild_id
    - 2nd_guild_id
等等

这是我目前的代码:

        with open('guilds.yaml', 'r+') as guild_add:
            yaml.dump({'connected_guilds'.replace("'", ""): [guild_id]}, guild_add, indent=4)
因此,基本上我认为如果我应该有一个if子句来检查密钥是否已经存在,如果已经存在,那么在下面添加它,但是在实现它时我仍然感到困惑


如果有人能帮忙,我将不胜感激

您正在打开,但未读取文件。您可以创建一个新列表,而不是附加到现有列表

以下是如何做到这一点:

将open('guilds.yaml','r+')作为f:
#加载内容
内容=yaml.安全荷载(f)
#将新id追加到现有列表中
内容[“已连接的工会”]。附加(工会id)
#重置文件中的位置(自从我们读取文件后,它位于末尾)
f、 搜索(0)
#将更新的YAML写入文件
yaml.dump(内容,f)
#在当前位置之后丢弃文件的任何(旧)内容,
#这是我们刚刚写的YAML的结尾。
#因为我们增加了更多的内容,所以这里不太可能有更多的内容,
#但并非不可能!
f、 截断()

您对此有什么问题?这是一个帮助你解决问题的网站,但请不要只是来到这里,期望我们为你编写代码,而不自己尝试任何东西。请注意,我尝试过编写代码,但没有任何效果。同样的情况也适用于值删除吗?是的,它适用于所有正常的列表操作。对于任何操作,只需在加载的Python对象上使用普通的dict/list操作即可。