【发布时间】:2018-01-15 08:17:41
【问题描述】:
目前情况: 我正在使用 Discord 的 API 来检索服务器中的成员对象字典。随着新成员的加入和老成员的离开,这本词典的大小不断变化。
我目前有一个运行时间约为 30 分钟的程序并访问此成员对象字典,因此可以保证当我在程序中对其进行迭代时该字典会更改大小;这会导致我的 for 循环出错。我好像也不能deepcopy这本词典;
TypeError: can't pickle dict_values objects
关于如何解决此问题的任何想法?
代码:for i in members:
do something;
尝试这个也行不通:
temp = copy.deepcopy(成员)
这就是字典:dict_values([<discord.member.Member object at 0x1094b3268>, <discord.member.Member object at 0x1094b32f0>, etc
【问题讨论】:
-
听起来您可能需要使用互斥锁来保护它。是什么在改变它?你的代码还是其他东西?
-
只是在这里扔掉一些东西:也许把它放在数据库中?
-
TypeError: can't pickle dict_values objects呃,那么你到底在做什么导致这个错误。pickle.dumps(some_dict.values())之类的东西会发生这种情况 -
将字典变成键列表,并将其分配给新变量。然后遍历键。然后一次访问一本字典。或者你可以使用
dict.keys()。
标签: python dictionary discord