我只是用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
这个错误..我试图使数据听写..
答案 0 :(得分:1)
问题是您将json.loads
的返回值视为可调用对象。检查this table,以查看可能得到的值。
我刚刚查看了discord
documentation,并且应该将字符串作为第一个参数,因此您无需将data
视为可调用对象,因为运行{{ 1}},您可能会有一个字符串。
以下几行可能会解决您的问题:
json.loads
但是,在任何情况下,await channel.send(data)
都不同于字符串,您需要将其强制转换:
data
答案 1 :(得分:1)
您始终可以将字典作为这样的字符串发送
await channel.send(str(data))
但是...这可能不是最友好的数据表示形式。