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

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

php - Find a regex to take part of Email -