【发布时间】:2021-04-18 02:18:30
【问题描述】:
我正在尝试为不和谐机器人构建字典。数据结构如下所示:
poll = {
'LINK' : {'MoonRaccoon' : 1, 'TheDirtyTree' : 1},
'ZRX' : {'MoonRaccoon' : 1, 'Dontcallmeskaface' : 1, 'TheDirtyTree' : 1},
'XRP' : {'Dontcallmeskaface' : 1},
'XLM' : {'aeon' : 1, 'Bob' : 1}
}
这将被保存到 Repl.it 数据库中的 db["poll"] 中。 https://docs.repl.it/misc/database 我猜这只是一个持久的字典? (我认为这与我遇到的问题无关)
用户将输入他们的投票喜欢
!v ZRX
然后机器人需要将该“投票”添加到字典中。
我试图这样做的代码是这样的:
更新:
def update_poll(ticker,requestor):
vote = {ticker : {requestor : 1}}
for (key, value) in vote.items():
if 'poll' not in db.keys():
db['poll'] = []
if key in db['poll'].keys():
db['poll'][key].append(value)
else:
db['poll'][key] = value
虽然进展不顺利.. 以前有人建议使用defaultdict,但老实说,我还没有能够将我的大脑包裹起来。 python新手在这里..
任何建议将不胜感激。
【问题讨论】:
-
所以你想要一个持久字典?
-
Repl.it 提供带有
db变量的持久字典。我只需要弄清楚如何使用它。当我用上面的测试数据集加载它时,它似乎工作正常。当我尝试一个一个地添加项目时,效果并不好。 -
只有一个问题。你为什么不直接在文件中腌制一个普通的字典来保存它?
-
顺便说一句,一旦我弄清楚如何一件一件地添加项目,我也希望能够一件一件地把它们拿走。基本上从股票代码字典中删除用户名,直到其中有 0 个项目,在这种情况下,股票代码键将被删除。
-
这是我第一次尝试构建一个不和谐的机器人,老实说,我对此知之甚少。在 Repl 上找到了一个关于构建机器人的教程,因此尝试使用他们首先提供的工具。如果我最终在其他地方运行机器人,我想我将需要另一个解决方案。它适用于上述测试数据结构,所以看来我的问题在于操纵该数据结构。
标签: python discord.py associative-array repl.it