我有一个这样的文件:
a hello
b goodbye
c submarine
我想将它保存到这样的字典中:
file = {'a': 'hello', 'b': 'goodbye', 'c': 'submarine'}
我试过了:
file={}
with open("the actual file") as f:
for line in f:
key , value = line.split()
file[key] = val
我收到此错误:
ValueError: too many values to unpack
答案 0 :(得分:2)
看起来你的行中有两个以空格分隔的单词,例如
a hello
b goodbye
c submarine
d some words
line.split()
会将上面的最后一行拆分为3个项目["d", "some", "words"]
的列表。
因为你只能(并且想要)处理两个项目,即键(第一个单词)和值(其他所有内容),我们必须将另一个参数传递给split()
函数,该函数指定字符串的频率应该最多拆分。我们想要两个项目,所以它只能在这里拆分一次。我们必须添加None
作为第一个参数,因为我们还必须指定一个分隔符,None
是默认值,代表所有类型的空格。
简而言之,将代码行更改为:
key, value = line.split(None, 1)