【问题标题】:discord.py rewrite | Implementing currencydiscord.py 重写 |实施货币
【发布时间】: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.dumpwith open('amounts.json', 'w') as f: json.dump(amounts, f)

标签: python dictionary discord.py-rewrite


【解决方案1】:

我相信使用外部数据库是值得的,例如学习 mongodb 的可能性很大。 PyMongo 是一种开始方式。

【讨论】:

  • 我会试试 PyMongo!谢谢这么快的回复,我现在就去试试:)
【解决方案2】:

我将我的用户词典保存到 .json 文件中,现在它可以完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多