Python:如何深度复制字典列表

2024-10-01 07:43:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,每个元素都是一个字典。 每个元素看起来都像这样

{'CELL': <Cell SOW16007.2.AC7>, 'COUNT': 2, 'NAMELIST': [], 'NAME': u'', 'LEVEL': u'SSE'}

我需要做个备份列表。正常赋值或使用浅拷贝不是我可以使用的选项,因为我将对原始文件进行更改。 但当我使用深拷贝时 backUpNames=deepcopy(oldNames) 我得到一个错误:

TypeError: unhashable type: 'array.array'

我在这里做错什么了?我怎么解决这个问题?

这不是一个重复的问题,因为我已经使用了deepcopy,我面临的问题是deepcopy抛出的错误。在

最小代码:

我使用openpxl迭代工作表并将值附加到列表中

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

谢谢你


Tags: name元素列表count错误celllevelarray
2条回答
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

我认为这样可以解决问题:

oldNames.append({'NAME':_ts['G7'].value,'LEVEL':_ts['H7'].value,'CELL':_ts['F7'].value,'COUNT':0,'NAMELIST':[]})

注意这个key/value对:'CELL':_ts['F7'].value

我想这里不能用单元格作为对象,而只能用它的值。在

相关问题 更多 >