From spycopg2 to psycopg3 data adaptation
От | Paolo De Stefani |
---|---|
Тема | From spycopg2 to psycopg3 data adaptation |
Дата | |
Msg-id | 4c05fd7ddf571bfc82baeede1449f7f0@paolodestefani.it обсуждение исходный текст |
Ответы |
Re: From spycopg2 to psycopg3 data adaptation
|
Список | psycopg |
Hi Still working on migration to psycopg3 of my (not so) small application... I use PyQt\PySide for user interface and i convert some postgresql data types to Qt types. For example to convert timestamptz to QDateTime in psycopg2 i use: def cast_timestamp_qdatetime(value, cur): if value is None: return None dt = QDateTime.fromString(value[:23], "yyyy-MM-dd HH:mm:ss.zzz") if not dt.isValid(): # no milliseconds dt = QDateTime.fromString(value[:19], "yyyy-MM-dd HH:mm:ss") return dt QDATETIME = psycopg2.extensions.new_type((1184,), "QDATETIME", cast_timestamp_qdatetime) psycopg2.extensions.register_type(QDATETIME) I tryed this to achieve the same result in psycopg3: class TimestamptzQDateTimeLoader(Loader): def load(self, value): if value is None: return None print(value) dt = QDateTime.fromString(value[:23], "yyyy-MM-dd HH:mm:ss.zzz") if not dt.isValid(): # no milliseconds dt = QDateTime.fromString(value[:19], "yyyy-MM-dd HH:mm:ss") return dt psycopg.adapters.register_loader('timestamptz', TimestamptzQDateTimeLoader) BUT it's not working because the "value" is binary not string: <memory at 0x000000000939BA00> So how i can get the same result of psycopg2 in psycopg3 ? -- Paolo De Stefani
В списке psycopg по дате отправления: