Pok*_*ace 11 python python-3.x
我正在尝试使用我的文本文件("out3.txt")的内容填充字典.
我的文本文件格式如下:
vs,14100
mln,11491
the,7973
cts,7757
Run Code Online (Sandbox Code Playgroud)
...等等...
我希望我的字典answer具有以下形式:
answer[vs]=14100
answer[mln]=11491
Run Code Online (Sandbox Code Playgroud)
...等等...
我的代码是:
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())
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
ValueError:要解压缩的值太多
我怎样才能解决这个问题?
Joh*_*web 12
你line的输入文件中有空的,我怀疑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)
Run Code Online (Sandbox Code Playgroud)
注:通过传递1到str.split(),一切后,第一个逗号将被分配到v; 如果这不是所需的行为,并且您希望拒绝这些行,则可以删除此参数.
| 归档时间: |
|
| 查看次数: |
62727 次 |
| 最近记录: |