2013-11-25 2 views
0

무엇보다도 불투명 한 제목에 대해 유감스럽게 생각합니다. 여기 사전 문제는 Python

내가 이렇게 같은 DICT 구조를 만드는거야, 데 문제입니다 :

requestDict["001"]["request"] = "GET/HTTP..." 

requestDict["001"]["response"] = "HTTP 1.1 OK..." 

을하지만이

def fiddler_convert(filename): 
archive = zipfile.ZipFile(filename, "r") 

requestDict = {} 

for name in archive.namelist(): 
    if name.find(".txt") != -1: 
     requestNum = (name.split("_")[0]).split("/")[1] 
     requestDict[requestNum] = {} 

     if name.find("_c.txt"): 
      requestDict[requestNum]["request"] = archive.read(name) 
     elif name.find("_s.txt"): 
      requestDict[requestNum]["response"] = archive.read(name) 
     else: 
      print "wat" 

for key, value in requestDict: 
    print key + ":" + value 

archive.close() 

I 작동하지 않습니다 for key, value in requestDict: ValueError: too many values to unpack

왜 오류가 발생합니까? 이거 야? 각 value의 유형은 "001", "002"등의 문자열입니다.

누군가 아이디어가 있다면 궁금하십니까? 입력이 모두 양호합니다 (예 : requestNum 변수가 "001"로 올바르게 설정되고 archive.read(name)이 양호 함).

답변

5

사전 반복기에서 반환하는 값은 키이고 튜플은 (key, value)이 아닙니다. 대신 items() 또는 iteritems()을 사용해보세요.

+0

그래, 그게 효과가있어. 나는 파이썬에 대해 좀 더 읽어야한다고 생각한다. 감사합니다. 할 수있을 때 답변으로 표시됩니다. –