psycopg2 возвращает кортеж из строки

Игрался я сегодня с базой на PostgreSQL (v8.3, если кому интересно) из Python посредством psycopg2, но внезапно застрял, да как-то неожиданно. Вылез в оболочку bpythonа и узрел…

>>> cur.execute('''SELECT (parent, level) FROM "MsgElems" WHERE msg_id=1;''')

>>> cur.fetchone()

('(0,1)',)

SELECT возвращает кортеж из строки, именно одной строки. Вот это сюрприз. Ни в Python DBAPI PEP, ни в psycopg docs я ничего не нашёл умного, загрустил уже, но потом в голову пришла гениальная (как обычно) идея:

>>> cur.execute('''SELECT parent, level FROM "MsgElems" WHERE msg_id=1;''')

>>> cur.fetchone()

(0, 1)

Вот такие пироги, остерегайтесь. А я тем временем попытаюсь выяснить, что это за ерунда, да и ерунда ли вообще.

Комментарии

Comments powered by Disqus