csv dictreader
Mike Driscoll
kyosohma at gmail.com
Wed Mar 19 15:55:21 EDT 2008
On Mar 19, 1:55 pm, brnstrmrs <brnstr... at gmail.com> wrote:
> On Mar 19, 2:32 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
>
>
>
> > On Mar 19, 1:06 pm, brnstrmrs <brnstr... at gmail.com> wrote:
>
> > > I am trying to use the dictionary reader to import the data from a csv
> > > file and create a dictnary from it but just can't seem to figure it
> > > out.
>
> > > Here is my code:
>
> > > >>>import csv
> > > >>>reader = csv.DictReader(open('table.csv'))
> > > >>>for row in reader:
> > > >>>print row
>
> > > my csv files looks like this:
>
> > > Bytecode,Element
> > > \x00\x00,0000
> > > \x01\x00,0001
> > > ....
> > > \x09\x00,0009
>
> > > My output shows:
> > > {'Bytecode': '\\x00\\x00', 'Element': '0000'}
> > > {'Bytecode': '\\x01\\x00', 'Element': '0001'}
> > > ...
> > > {'Bytecode': '\\x09\\x00', 'Element': '0009'}
>
> > > 1. how can I get access to this directory
>
> > What do you mean? You can get each element in the dict by doing this:
>
> > for row in reader:
> > print row['Bytecode']
> > print row['Element']
>
> > > 2. why does the values come with two backslashs infront of the "x"
>
> > The double back slash is for escaping purposes, I think. If you print
> > this: '\\x09\\x00'
> > you'll get this: \x09\x00
>
> > Mike
>
> Thanks. It works for the Bytecode but when I do print row['Element']
> I get a error message print row['Element'] KeyError: 'Element'
That's weird. Since I only had your output, I did the following:
<code>
reader = [ {'Bytecode': '\\x00\\x00', 'Element': '0000'},{'Bytecode':
'\\x01\\x00', 'Element': '0001'} ]
for x in reader:
print x['Element']
print x['Bytecode']
0000
\x00\x00
0001
\x01\x00
</code>
I must be missing something...
Mike
More information about the Python-list
mailing list