先来看一段代码
def dataClass(list):
for key in list:
if key=='stock_info':
newlist=list['stock_info']
for listkey in newlist:
newkey=str('stock_info'+listkey)
list[newkey]=newlist[listkey]
del list['stock_info']
return list
这一段是我对一段json数据的转存,原因是原json中key=stock_info的value是一串字典,将字典中的数据提取出来重新组合key值,添加到原数据中,在提出出stock_info中的键值对后,需要删除原键值对,这时候会有错误
dictionary changed size during iteration。
简单的来说就是无法对正在处理的dict进行删除或者修改操作。
那么怎么解决呢?
我将其转换为list进行处理(建议转换为列表或者集合进行处理)
更改后代码如下:
def dataClass(self,datalist):
morelist=datalist
for key in list(morelist.keys()):
if key=='stock_info':
newlist=morelist['stock_info']
#print((newlist))
for listkey in newlist:
newkey=str('stock_info'+listkey)
morelist[newkey]=newlist[listkey]
del morelist['stock_info']
return morelist
更改以后测试没有问题可以执行。