我正在尝试使用文本文件(“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:太多值无法解压
我怎样才能解决这个问题?
你有空line
s 在你的输入文件中,我怀疑其中之一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(使用前将#替换为@)