获取标题中提到的错误。下面提到的函数由通过POST api调用的另一个函数调用。
错误在打印语句下方的行上。不知道错误的含义以及为什么会出现。用于一周前运行的相同代码。
def remove_individual_stops(ordered_parkstop_dict, relevant_data):
new_ordered_parkstop_dict = ordered_parkstop_dict
for key, value in ordered_parkstop_dict.items():
if len(value) == 0:
for k,v in ordered_parkstop_dict.items():
if key in v:
new_ordered_parkstop_dict.pop(key)
print (type(ordered_parkstop_dict), ordered_parkstop_dict)
for k,v in ordered_parkstop_dict.items():
klist = []
keylist = []
if value and v:
if len(v)==1 and len(value)==1:
klist.append(k), keylist.append(key)
if (keylist == v) and (klist == value and len(value) == 1):
new_ordered_parkstop_dict.pop(key)
return new_ordered_parkstop_dict
答案 0 :(得分:3)
您为new_ordered_parkstop_dict
分配了一个ordered_parkstop_dict
字典的引用,因此当您遍历ordered_parkstop_dict.items()
并通过弹出它来对new_ordered_parkstop_dict
进行突变时,就可以对ordered_parkstop_dict
进行突变也是如此,因为您的循环正在ordered_parkstop_dict
上循环,所以无法完成。
您应该将ordered_parkstop_dict
的副本分配给new_ordered_parkstop_dict
。更改:
new_ordered_parkstop_dict = ordered_parkstop_dict
收件人:
new_ordered_parkstop_dict = ordered_parkstop_dict.copy()