PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

TypeError :impossible d'échapper à psycopg2.extensions.Binary en binaire

Conversion des octets du fichier en psycopg2.Binary est inutile. Cela se produira automatiquement lorsque SQLAlchemy enverra l'instruction et les valeurs à la base de données (à l'aide du connecteur DBAPI, qui serait psycopg2 dans ce cas).

Quelque chose comme

with open(fn, 'rb') as f:
    bytes_ = f.read()
    instance = MyModel(document1=bytes_)
    session.add(instance)
    session.commit() 

fonctionne à la fois en Python2 et Python3, SQLAlchemy 1.3.x, générant cette sortie du moteur :

2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine INSERT INTO mytable (document1) VALUES (%(document1)s) RETURNING mytable.id
2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine {'document1': <psycopg2.extensions.Binary object at 0x7f8ea012ff60>}