我循环浏览文件夹,查找文件名,然后尝试将找到的文件名与字典中的值相关联。然后,我希望为每个文件获取字典值,并将其用于其他文件。
提取文件名时,它以列表形式出现。
下面的代码显示了我得到的确切内容。 '文件名'出现在[' 2_data']。
我需要找到此列表值的相应字典值。 " DATA2"
我该怎么做?
# dict
csvdict = ({"1_Data" : "data1",
"_2_data" : "data2",})
# example name
nameData = 'C:/folder/1/2\3\3\CSV Files\\2_data.csv'
csvName = (re.findall('CSV Files[^\w]+([\w\d\s-]+)', nameData))
print(csvName)
当我尝试此代码时,出现TypeError: unhashable type: 'list'
错误。我不知道如何将列表值转换为字典将读取的内容。
if csvName in csvdict:
print(csvdict[csvName])
错误:
TypeError Traceback (most recent call last)
<ipython-input-71-86fc5d1ebca7> in <module>()
22 #csvdict[fileName]
23 #DICTIONARY ATTMEPT**********************************************************
---> 24 if csvName in csvdict:
25 print(csvdict[csvName])
26
TypeError: unhashable type: 'list'
答案 0 :(得分:1)
您不能将列表用作字典键(因为它们在错误消息状态下不可用)。
以下内容避免了这个问题:
if csvName[0] in csvdict:
print(csvdict[csvName[0]])