Can't get sqlite3.Row working: keyword lookup doesn't work
Peter Otten
__peter__ at web.de
Sun Jan 26 03:05:25 EST 2014
lgabiot wrote:
> using Python 2.7.6
>
> I try to access a sqlite database using keyword lookup instead of
> position (much more easy to maintain code), but it always fail, with the
> error:
> Index must be int or string
>
> I have created the database, populated it, and here is the code that
> tries to retrieve the information:
>
> with sqlite3.connect(mydbPath) as db: # open the database
> db.row_factory = sqlite3.Row
> cursor = db.cursor()
> cursor.execute("SELECT * FROM files")
>
> for row in cursor.fetchall():
> print(row.keys())
> print(row["filename"])
>
>
> result is:
>
> ['filename', 'filepath', 'filetag', 'PROJECT', 'SCENE', 'TAKE', 'TAPE',
[...]
> 'is_cantar', 'is_sound_devices', 'exist']
>
> error => Index must be int or string
Please remember to cut and past the traceback next time.
> What is wrong?
My crystal ball says that you have a
from __future__ import unicode_literals
statement at the beginning of the module. If I'm right try
row[b"filename"]
More information about the Python-list
mailing list