sql >> Database teknologi >  >> RDS >> PostgreSQL

TypeError:kan ikke undslippe psycopg2.extensions.Binary to binary

Caster bytes fra filen til psycopg2.Binary er unødvendigt. Det sker automatisk, når SQLAlchemy sender sætningen og værdierne til databasen (ved hjælp af DBAPI-forbindelsen, som ville være psycopg2 i dette tilfælde).

Noget lignende

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

virker i både Python2 og Python3, SQLAlchemy 1.3.x, og genererer dette output fra motoren:

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>}



  1. Hvordan dropper man en tabel, hvis den eksisterer?

  2. Mac OS X + Python + Django + MySQL

  3. Kend relationer mellem alle tabellerne i databasen i SQL Server

  4. SQL Injection DROP TABLE virker ikke