Python ValueError:没有足够的值来解包(预期为2,得到1)使我无法完成代码
您好,我正在尝试从python中的一个文件创建一个字典,我一直收到这个错误。我不知道如何修理它。非常感谢您的帮助 这是我的密码:Python ValueError:没有足够的值来解包(预期为2,得到1)使我无法完成代码,python,python-3.x,Python,Python 3.x,您好,我正在尝试从python中的一个文件创建一个字典,我一直收到这个错误。我不知道如何修理它。非常感谢您的帮助 这是我的密码: dict = {} f = open('example.txt', 'r') row = f.read() lines = row.split("\n") for line in lines: name, number = line.split(")") dict[name] = number f.close() return dic
dict = {}
f = open('example.txt', 'r')
row = f.read()
lines = row.split("\n")
for line in lines:
name, number = line.split(")")
dict[name] = number
f.close()
return dict
下面是该文件的外观:
a)b
b)c
abc)d
d)dac
提前感谢您在最后一行
处得到一个空行。拆分
。通过检查if line,您可以按如下方式删除它:
lines=[行中的行对应行。如果行是拆分(“\n”)
此外,对于变量,不应重复使用内置名称dict。您正在函数外使用return,这是无效的。read将在文件末尾添加一个额外的空行。 要读取文件内容,请调用f.read(size),它读取一定数量的数据并将其作为字符串或字节对象返回。大小是可选的数字参数。当大小省略或为负数时,将读取并返回文件的全部内容;如果文件的大小是计算机内存的两倍,那就是您的问题。否则,最多读取并返回大小字节。如果已到达文件的结尾,f.read()将返回一个空字符串(“”) 更改程序以检查libe是否存在
dict = {}
f = open('example.txt', 'r')
row = f.read()
lines = row.split("\n")
for line in lines:
if line:
name, number = line.split(")")
dict[name] = number
f.close()
return dict
参考:
IMP:请不要对变量使用内置名称dict或者从文件末尾删除空行(是的,它就在那里),或者添加
如果行:
在上拆分前检查)
或者实际检查行的长度。拆分('))“)
,因为每次出现一行少于或多于一行的)
时,代码都会中断。拆分(“)”此行只生成一个值检查文件中是否有多余的空行。不要使用dict
作为变量名,它是一个内置名<代码>返回dict函数的外侧?很抱歉,我在复制itI时忘记选择函数的名称。我实际上会检查第行中的if'),以确保在其他没有的行中它不会失败。
。而且,readlines
比read
然后按\n
拆分要好。