How can I fix ValueError: Too many values to unpack" in Python? -
i trying populate dictionary contents of text file ("out3.txt").
my text file of form:
vs,14100 mln,11491 the,7973 cts,7757
...and on...
i want dictionary answer
of form:
answer[vs]=14100 answer[mln]=11491
...and on...
my code is:
import os import collections import re collections import defaultdict answer = {} answer=collections.defaultdict(list) open('out3.txt', 'r+') istream: line in istream.readlines(): k,v = line.strip().split(',') answer[k.strip()].append( v.strip())
but, get:
valueerror: many values unpack
how can fix this?
you have empty line
s in input file , suspect 1 of line
s have not shared has many commas in (hence "too many values unpack").
you can protect against this, so:
import collections answer = collections.defaultdict(list) open('out3.txt', 'r+') istream: 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: passing 1
str.split()
, after first comma assigned v
; if not desired behaviour , you'd prefer these lines rejected, can remove argument.
Comments
Post a Comment