eval to dict problems NEWB going crazy !
manstey
manstey at csu.edu.au
Thu Jul 6 07:25:19 EDT 2006
That doesn't work. I just get an error:
x = eval(line.strip('\n'))
File "<string>", line 1
[('recId', 3), ('parse', {'pos': u'np', 'gen': u'm'})]
SyntaxError: unexpected EOF while parsing
any other ideas?
Bruno Desthuilliers wrote:
> manstey wrote:
> > Hi,
> >
> > I have a text file called a.txt:
> >
> > # comments
> > [('recId', 3), ('parse', {'pos': u'np', 'gen': u'm'})]
> > [('recId', 5), ('parse', {'pos': u'np', 'gen': u'm'})]
> > [('recId', 7 ), ('parse', {'pos': u'np', 'gen': u'm'})]
> >
> > I read it using this:
> >
> > filAnsMorph = codecs.open('a.txt', 'r', 'utf-8') # Initialise input
> > file
> > dicAnsMorph = {}
> > for line in filAnsMorph:
> > if line[0] != '#': # Get rid of comment lines
> > x = eval(line)
> > dicAnsMorph[x[0][1]] = x[1][1] # recid is key, parse dict is
> > value
> >
> > But it crashes every time on x = eval(line). Why is this? If I change
> > a.txt to:
> >
> > # comments
> > [('recId', 3), ('parse', {'pos': u'np', 'gen': u'm'})]
> >
> > it works fine. Why doesn't it work with multiple lines? it's driving me
> > crazy!
>
> try with:
> x = eval(line.strip('\n'))
>
>
> --
> bruno desthuilliers
> python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
> p in 'onurb at xiludom.gro'.split('@')])"
More information about the Python-list
mailing list