Python 如何使用postgres上的SQLAlchemy将元素插入嵌套JSONB数组

Python 如何使用postgres上的SQLAlchemy将元素插入嵌套JSONB数组,python,postgresql,jsonb,gino,Python,Postgresql,Jsonb,Gino,关于如何在postgres中存储JSONB,我已经看到了各种各样的好答案,但是从postgres 9.5开始,我们现在可以插入到现有的JSONB数组中,而无需更新列中的数据。我所能找到的材料中没有任何地方记录了这一点,而且由于我是SQLAlchemy(有些是python)的新手,阅读代码对我的帮助并没有我想要的那么大 我正在使用Postgres 10.9、python 3.7和SQLAlchemy 1.3.8(带有GINO包装器) 这只是最新的尝试,但也有许多尝试出现了无数不同的错误: awai

关于如何在postgres中存储JSONB,我已经看到了各种各样的好答案,但是从postgres 9.5开始,我们现在可以插入到现有的JSONB数组中,而无需更新列中的数据。我所能找到的材料中没有任何地方记录了这一点,而且由于我是SQLAlchemy(有些是python)的新手,阅读代码对我的帮助并没有我想要的那么大

我正在使用Postgres 10.9、python 3.7和SQLAlchemy 1.3.8(带有GINO包装器)

这只是最新的尝试,但也有许多尝试出现了无数不同的错误:

await gathering. \
        update(participation=func.jsonb_insert("participation",
                                                "{applications}",
                                                func.to_jsonb(json.dumps(application)))). \
        apply()
在参与列中,我有一个JSONB对象

{ 
    "applications": [ { ... element to be appended} ] 
}
在这种特殊情况下,代码会产生一个错误:

无法确定多态类型,因为输入的类型未知

我想出来了

ajs = json.dumps(application)
await gathering. \
                update(participation=func.jsonb_insert(
                       json.dumps(gathering.participation), 
                       ["applications","0"],  ajs)). \
                apply()
为试错干杯。有一个比这个更优雅的解决方案