TypeError:'dict'对象不可调用python3

时间:2020-07-11 02:44:45

标签: python discord

我只是用python3做不和谐的机器人

    if message.content.startswith('!meal'):
        with open('menu.json', encoding='utf-8') as json_file:
            data = json.load(json_file)
        channel = message.channel
        await channel.send('this is meal info!')
        await channel.send(data())

但是使用此命令时出现错误

~/pythonruby/discord bot/main.py", line 30, in on_message
    await channel.send(data())
TypeError: 'dict' object is not callable

这个错误..我试图使数据听写..

2 个答案:

答案 0 :(得分:1)

问题是您将json.loads的返回值视为可调用对象。检查this table,以查看可能得到的值。

我刚刚查看了discord documentation,并且应该将字符串作为第一个参数,因此您无需将data视为可调用对象,因为运行{{ 1}},您可能会有一个字符串。

以下几行可能会解决您的问题:

json.loads

但是,在任何情况下,await channel.send(data) 都不同于字符串,您需要将其强制转换:

data

答案 1 :(得分:1)

您始终可以将字典作为这样的字符串发送

await channel.send(str(data))

但是...这可能不是最友好的数据表示形式。