繁体   English   中英

为什么在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:需要多个1值才能解压缩”,但我不确定为什么。 我试图通过用空格分隔等号两侧的值来修改.rtf文件,以防造成影响。

UPDATE

正如@tdelaney和其他人指出的那样,使用.rtf文件确实是问题所在。 转换为纯文本后,代码现在可以平稳运行。 伙计们,谢谢您的帮助。

您的输入文件为RTF格式,这意味着它包含这样的格式代码(即使它不包含任何格式):

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
packagename=version_number\par
}

这不是您的程序所期望的输入,并且您可能会在第一行收到错误,该错误包含no = ,因此将拆分为一个值,从而给出错误。

尝试转换为txt ,或编写代码以处理RTF。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM