我有一个文件,其名称放在一起,彼此相关,我需要第一个设置为一个键,第二个设置为一个值,但是当我运行程序时,我得到错误
ValueError: too many values to unpack
我已经研究了这个,但是,我还没有找到解决方法。下面是代码,以及我在尝试解决此问题时发现的一些材料的链接。 http://www.youtube.com/watch?v=p2BwrdjlsW4
dataFile = open("names.dat", 'r')
myDict = {}
for line in dataFile:
k,v = line.strip( ). split(",")
myDict[k.strip (":")] = v.strip ( )
print(k, v)
dataFile.close()
def findFather(myDict, lookUp):
for key, value in myDict.items ( ):
for v in value:
if lookUp in value:
return key
lookUp = raw_input ("Enter a son's name: ")
print "The father you are looking for is ",findFather(myDict, lookUp)
文件保存为" names.dat"并列在一行中,其值为:
john:fred, fred:bill, sam:tony, jim:william, william:mark, krager:holdyn, danny:brett, danny:issak, danny:jack, blasen:zade, david:dieter, adam:seth, seth:enos
答案 0 :(得分:1)
代码
line.strip( ). split(",")
返回如下列表:
["jhon:fred", "fred:bill", "sam:tony", ...]
所以,当你这样做时
k,v = line.strip( ). split(",")
您尝试将该列表的所有值都放入k
和v
只有两个。
试试这段代码:
for line in dataFile:
for pair in line.strip(). split(","):
k,v = pair. split(":")
myDict[k.strip (":")] = v.strip()
print(k, v)
注意:以上代码仅用于删除您获得的错误。我不保证这段代码会做你想做的事。此外,我还不知道您尝试使用代码进行操作是什么:
myDict[k.strip (":")] = v.strip()