为什么在 python 中使用 split() 方法的值会出现值错误?
Why am I getting a value error for values that use the split() method in python?
我正在尝试使用字典将值列表分成键和值。列表格式如下:
packagename=version_number
packagename2=version_number2
etc...
有时版本号有特殊字符,但绝不是等号。
dict = {}
with open('file.rtf') as f:
for line in f.readlines():
pkg,ver = line.split('=')
dict[pkg] = ver
print("%s: %s" % (dict[pkg], dict[ver]))
当我 运行 代码时,我收到以下错误:"ValueError: need more than 1 value to unpack" 我不确定为什么。我尝试通过用空格分隔等号两边的值来修改 .rtf 文件,以防产生差异。
更新
正如@tdelaney 和其他人指出的那样,使用 .rtf 文件确实是问题所在。转换为纯文本后,编码 运行 现在很流畅了。谢谢你们的帮助,伙计们。
您的输入文件是 RTF 格式,这意味着它包含这样的格式代码(即使它不包含任何格式):
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
packagename=version_number\par
}
这不是您的程序所期望的输入,您可能在第一行收到错误,其中不包含 =
,因此拆分为一个值,给出了您的错误。
尝试转换为 txt
,或编写您的代码来处理 RTF。
我正在尝试使用字典将值列表分成键和值。列表格式如下:
packagename=version_number
packagename2=version_number2
etc...
有时版本号有特殊字符,但绝不是等号。
dict = {}
with open('file.rtf') as f:
for line in f.readlines():
pkg,ver = line.split('=')
dict[pkg] = ver
print("%s: %s" % (dict[pkg], dict[ver]))
当我 运行 代码时,我收到以下错误:"ValueError: need more than 1 value to unpack" 我不确定为什么。我尝试通过用空格分隔等号两边的值来修改 .rtf 文件,以防产生差异。
更新
正如@tdelaney 和其他人指出的那样,使用 .rtf 文件确实是问题所在。转换为纯文本后,编码 运行 现在很流畅了。谢谢你们的帮助,伙计们。
您的输入文件是 RTF 格式,这意味着它包含这样的格式代码(即使它不包含任何格式):
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
packagename=version_number\par
}
这不是您的程序所期望的输入,您可能在第一行收到错误,其中不包含 =
,因此拆分为一个值,给出了您的错误。
尝试转换为 txt
,或编写您的代码来处理 RTF。