Python ValueError:没有足够的值来解包(预期为2,得到1)使我无法完成代码

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

您好,我正在尝试从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 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
拆分要好。