FAQ

Ulrich Goebel wrote:


Hallo,

again: a python beginner problem... but I spent ours to solve it without
success.

I have an object (a variable) name, which gets its value from a
PostgreSQL database via a SELECT statement, an it sometimes has german
special characters as ?, ?, ?...

Then I would like to insert that value into a table in a SQLite
database. So I make a cursor cur on the table and prepare a SQL
statement like this:

sql = 'insert into tbl values(?)'
cur.execute(sql, (name,))

That ends up with the exception, for example,

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6:
ordinal not in range(128)

The "position 6" is exactly the position of the special character, ? in
this case.

What to do?

While sqlite works with unicode out of the box it looks like the PostgreSQL
adapter needs to be convinced first:


http://initd.org/psycopg/docs/usage.html#unicode-handling


Try adding the voodoo suggested above


import psycopg2
import psycopg2.extensions
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)


to your script. I'm of course assuming you are using python 2.x and
pyscopg2...

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 3 | next ›
Discussion Overview
grouppython-list @
categoriespython
postedNov 5, '13 at 1:27a
activeNov 5, '13 at 9:00a
posts3
users3
websitepython.org

People

Translate

site design / logo © 2022 Grokbase