2017-05-01 10 views
0

폴더를 반복하면서 파일 이름을 찾은 다음 찾은 파일 이름을 사전의 값과 연결하려고합니다. 그러면 각 파일의 사전 값을 가져 와서 다른 용도로 사용할 것입니다.단일 목록 값의 해당 사전 키?

파일 이름을 추출 할 때 목록으로 나옵니다.

아래 코드는 내가 얻은 바를 정확히 보여줍니다. 'fileName'은 [ '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]) 

오류 : (그들은 오류 메시지 상태로 unhashable이기 때문에) 당신은 사전 키로 목록을 사용할 수 없습니다

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]]) 
관련 문제