python - TypeError: 'generator' object has no attribute '__getitem__' -
i have written generating function should return dictionary. when try print field following error
print row2['searchdate'] typeerror: 'generator' object has no attribute '__getitem__' this code
from csv import dictreader import pandas pd import numpy np def gensearch(searchinfo): row2 in dictreader(open(searchinfo)): yield row2 train = 'minitrain.csv' searchinfo = 'searchinfo.csv' row2 = {'searchid': -1} row1 in dictreader(open(train)): if 'searchid' in row1 , 'searchid' in row2 , row1['searchid'] == row2['searchid']: x = deepcopy( row1 ) #x['searchdate'] = row2['percent'] x.update(row2) print 'new' print x else: #call generator row2 = gensearch(searchinfo) print row2['searchdate']
generator returns iterator, explicitly needs call next on it.
your last line of code should -
rows_generator = gensearch(searchinfo) row2 = next(rows_generator, none) print row2['searchdate']
Comments
Post a Comment