Re: getquoted and unicode
От | Carl S. Yestrau Jr. |
---|---|
Тема | Re: getquoted and unicode |
Дата | |
Msg-id | AANLkTikf0YTUwo7vgRVyoQtzspOmZh0q42XLdqOtdK62@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: getquoted and unicode (Daniele Varrazzo <daniele.varrazzo@gmail.com>) |
Ответы |
Re: getquoted and unicode
|
Список | psycopg |
It does work, using this branch, thank you. One observation, the string returned is of type str, not unicode. Example: import psycopg2 psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) adapted = psycopg2.extensions.adapt(u'test') print adapted.getquoted() #<type 'str'> On Sun, Jan 23, 2011 at 4:44 AM, Daniele Varrazzo <daniele.varrazzo@gmail.com> wrote: > On Sun, Jan 23, 2011 at 7:53 AM, Carl S. Yestrau Jr. > <carl@featureblend.com> wrote: >> I'm currently using psycopg2.extensions.adapt without a connection >> intentionally. >> >> The following results in a: psycopg2.InterfaceError: can't encode >> unicode string to latin-1 >> >> import psycopg2 >> >> psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) >> adapted = psycopg2.extensions.adapt(u'test') >> adapted.getquoted() > > You are right, it should work, and it works indeed in the psycopg dev > version, but it looks broken in 2.3.2 and probably in previous > versions. > > I can see that the glitch happens when the adapter is not "prepared" > for the connection: if you add that step it will work. Preparation > always happens when the parameters are passed to the query. > > >>> cnn = psycopg2.connect('dbname=test') > >>> adapted.prepare(cnn) > >>> adapted.getquoted() > "E'test'" > > Preparation is probably not mentioned in the docs at all: this is > something else to review. If you are into writing an adapter, you may > want to take a look to SQL_IN or the hstore adapter for complete > examples. > > If you need to work without the connection, do you want to try > checking out my dev branch? I've just pushed it on > <https://github.com/dvarrazzo/psycopg>. > > Cheers, > > -- Daniele >
В списке psycopg по дате отправления: