如何修复 Python 中的 ValueError: Too much value to unpack”?

2023-12-31

我正在尝试使用文本文件(“out3.txt”)的内容填充字典。

我的文本文件的形式为:

vs,14100

mln,11491

the,7973

cts,7757

...等等...

我想要我的字典answer其形式为:

answer[vs]=14100

answer[mln]=11491

...等等...

我的代码是:

import os
import collections
import re
from collections import defaultdict

answer = {}
answer=collections.defaultdict(list)
with open('out3.txt', 'r+') as istream:
    for line in istream.readlines():
        k,v = line.strip().split(',')
        answer[k.strip()].append( v.strip())

但是,我得到:

ValueError:太多值无法解压

我怎样才能解决这个问题?


你有空lines 在你的输入文件中,我怀疑其中之一line您尚未与我们分享的内容中有太多逗号(因此“太多值无法解压”)。

您可以防止这种情况,如下所示:

import collections

answer = collections.defaultdict(list)
with open('out3.txt', 'r+') as istream:
    for line in istream:
        line = line.strip()
        try:
            k, v = line.split(',', 1)
            answer[k.strip()].append(v.strip())
        except ValueError:
            print('Ignoring: malformed line: "{}"'.format(line))

print(answer)

Note:通过传递1 into str.split() http://docs.python.org/2/library/stdtypes.html#str.split, 第一个逗号之后的所有内容都将被分配给v;如果这不是所需的行为,并且您希望拒绝这些行,则可以删除此参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 Python 中的 ValueError: Too much value to unpack”? 的相关文章

随机推荐