我有一个 python 函数,它必须从文件中读取数据并将其拆分为两个键和值,然后将其存储在字典中。示例:文件:
http://google.com 2
http://python.org 3
# and so on a lot of data
我为此使用了拆分功能,但是当确实有很多数据时它会引发值错误
ValueError: too many values to unpack
我该怎么办?
这是失败的确切代码
with open(urls_file_path, "r") as f:
for line in f.readlines():
url, count = line.split()# fails here
url_dict[url] = int(count)
原文由 user3156971 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在尝试将拆分列表解包到这两个变量中。
如果没有空格或两个或更多空格怎么办?剩下的话会去哪里呢?
您实际上可以在分配之前检查长度
使用输入文件,
这个程序产生,
按照 @abarnert 的评论,您可以像这样使用
partition
函数如果有多个空格/没有空格,则
count
将分别保留字符串的其余部分或空字符串。如果你使用的是 Python 3.x, 你可以这样做
前两个值将分别分配给
first
和second
,列表的其余部分将分配给rest