Yes, Mike, that solved the problem! I forgot to pass the column name. Now I get a different error: bindparam is not json-serializable. StatementError('(builtins.TypeError) Object of type BindParameter is not JSON serializable'),
Is the JSONB column not supporting lazy/bindparam-compatible "preparing" of queries? Il giorno mar 15 set 2020 alle ore 17:13 Mike Bayer < mike...@zzzcomputing.com> ha scritto: > the dictionary is with column names as keys: > > > set_={"data": bindparam("timestamps")} > > hope this helps > > > > On Tue, Sep 15, 2020, at 10:55 AM, Massimiliano della Rovere wrote: > > Greetings, > I am using SQLAlchemy==1.3.18. > > I have an SQLAlchemy "Settings" table with a "data" column defined as: > > from sqlalchemy.dialects.postgresql import JSONB > Settings = Table( > "settings", > self._metadata, > # ... > Column("data", JSONB, nullable=False)) > > and later in the code this "baked" query: > > from sqlalchemy.dialects.postgresql import insert as pinsert, JSONB > query = ( > pinsert(Settings) > .values({ > "key": "xxx", > "data": bindparam("timestamps", type_=JSONB)}) > .on_conflict_do_update( > index_elements=(Settings.columns.key,), > set_=bindparam("timestamps", type_=JSONB)) > > The python interpreter throws me the following error raised by > sqlalchemy.dialects.postgresql.dml line 227: > if not isinstance(set_, dict) or not set_: > raise ValueError("set parameter must be a non-empty > dictionary") > > it seems that the "set_" parameter of the "on_conflict_do_update" method > requires a dict, and thus is not compatible with bindparam. > I have also tried to set the "type_" parameter of bindparam to dict, but > I did not solve the problem. > > Please, can anybody help me? > > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/CADKhPGT_mze%2BgjD%3DYoNd7tPGtpYMNnreKne%3DgwWMuJMZ0g2-xw%40mail.gmail.com > <https://groups.google.com/d/msgid/sqlalchemy/CADKhPGT_mze%2BgjD%3DYoNd7tPGtpYMNnreKne%3DgwWMuJMZ0g2-xw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/9b1ce445-b8c7-4209-977d-c41de5153348%40www.fastmail.com > <https://groups.google.com/d/msgid/sqlalchemy/9b1ce445-b8c7-4209-977d-c41de5153348%40www.fastmail.com?utm_medium=email&utm_source=footer> > . > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/CADKhPGQkUh3cqws3Tj9i%2BATs0DRXh4pX-U8MyWWHGnen%2Bt2ZRA%40mail.gmail.com.