我有一个列表,其中每个元素都是一个字典。 每个元素看起来都像这样
{'CELL': <Cell SOW16007.2.AC7>, 'COUNT': 2, 'NAMELIST': [], 'NAME': u'', 'LEVEL': u'SSE'}
我需要对此列表进行备份。正常分配或使用浅拷贝不是我可以使用的选项,因为我将对原始进行更改。
但是当我使用deepcopy时
backUpNames=deepcopy(oldNames)
我收到了一个错误:
TypeError: unhashable type: 'array.array'
我在这做什么错?我该如何解决这个问题?
这是一个不重复的问题,因为我已经使用了深度复制,我面临的问题是深度复制正在抛出错误。
最小代码:
使用openpxl i迭代工作表并将值附加到列表
wb=openpyxl.load_workbook(sys.argv[3],data_only=True)
_ts=wb.active
oldNames.append({'NAME':_ts['G7'].value,'LEVEL':_ts['H7'].value,'CELL':_ts['F7'],'COUNT':0,'NAMELIST':[]})
backUpNames=deepcopy(oldNames)#error occurring here
谢谢
答案 0 :(得分:1)
import copy
list = [{'a':1,'b':2},{'c':3,'d':4}]
cpy_list = []
for li in list:
d2 = copy.deepcopy(li)
cpy_list.append(d2)
print cpy_list
答案 1 :(得分:0)
我认为这样可以解决问题:
oldNames.append({'NAME':_ts['G7'].value,'LEVEL':_ts['H7'].value,'CELL':_ts['F7'].value,'COUNT':0,'NAMELIST':[]})
请注意此key/value
对:'CELL':_ts['F7'].value
我想你不能在这里使用cell作为对象,而只是它的值。