Sto utilizzando la libreria principale di SQLAlchemy per accedere ad alcuni database PostgreSQL. Considerate Ho la seguente tabella:Utilizzo di un encoder JSON personalizzato per l'implementazione JSONB PostgreSQL di SQLAlchemy
create table foo (j jsonb);
E il seguente codice Python:
from decimal import *
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, DateTime
from sqlalchemy.dialects.postgresql import JSONB
metadata = MetaData(schema="public")
foo = Table('foo', metadata,Column('f', JSONB))
d = Decimal(2)
ins = foo.insert().values(j = {'d': d})
# assuming engine is a valid sqlalchemy's connection
engine.execute(ins)
Quest'ultima frase non riesce con il seguente errore:
StatementError("(builtins.TypeError) Decimal('2') is not JSON serializable",)
è per questo che chiedo questo domanda: esiste un modo per specificare un codificatore personalizzato per SQLAchemy da utilizzare durante la codifica dei dati JSON nel dialetto PostgreSQL?
impressionante. Mancava quella parte della documentazione. Lo proverò domani e accetterò la risposta di conseguenza. Grazie!! –