【发布时间】:2019-05-12 19:23:11
【问题描述】:
好的,所以我一直想尝试向我的机器人添加货币有一段时间了。所以,我今天低头开始,但我遇到了一些问题。我知道我需要使用成员字典,而且我已经有了:amounts = {}。我有一个注册命令,它将一个成员及其 ID 和货币数量添加到字典中。
但是,这似乎不是一个好主意。每当我重新打开机器人时,字典都会重置。我不太确定如何保存我的字典,希望能得到一些帮助。
作为参考,这是我的注册命令:
@client.command(name='register',
aliases=['reg'],
brief='Registers your account',
pass_ctx=True)
async def register(ctx):
id = ctx.message.author.id
if id not in amounts:
amounts[id] = 100
await ctx.send('You have been registered')
else:
await ctx.send('You already have an account')
我还是个字典和 discord.py 的初学者,如果我对你的回答提出了很多问题,很抱歉!
【问题讨论】:
-
您可以在更改字典时将其保存到文件中,并在您的机器人启动时从该文件中加载它(discord.py 标记中有很多这样的示例)。另一种选择是使用数据库。如果您确实使用数据库,请确保使用异步库来连接它:如果您使用阻塞库,如果操作时间过长,您的机器人将随机失败。
-
@PatrickHaugh 如果我使用
.json文件来保存我的字典,我该如何保存/加载我的字典?我在网上找到的东西有问题:/ -
使用
json.dump。with open('amounts.json', 'w') as f: json.dump(amounts, f)
标签: python dictionary discord.py-rewrite