
[英]Issue with Sqlalchemy and inserting array of jsonb to postgresql
[英]SQLalchemy +Postgresql accessing Array of jsonb elements
我有一个看起来像这样的查询。 query = db.query(status_cte.c.finding_status_history)
当我检查.type
时,finding_status_history 列的类型为数组。 它是一个jsonb
对象数组,如果更容易的话,我可以轻松地将其更改为json
。 我还用它测试了这个json
。
[
{
"data": [
{
"status": "closed",
"created_at": "2023-01-27T18:05:27.579817",
"previous_status": "open"
},
{
"status": "open",
"created_at": "2023-01-27T18:05:28.694352",
"previous_status": "closed"
}
]
},
...
]
我正在尝试访问嵌套在data
中的第一个字典并访问status
列。
我试图使用query = db.query(status_cte.c.finding_status_history[0])
来获取它,但这会返回一个像这样的空字典列表。
[
{},
{},
{},
{},
{},
{},
{}
]
我不确定为什么这不起作用,因为我的印象是我应该抓住第一个条目。 我假设我需要首先访问“数据”,但我也试过......
query = db.query(status_cte.c.finding_status_history.op('->>')('data')
这给了我jsonb[] ->> unknown operator doesn't exist
。我试着输入 cast 数据到是 String 的那个,我得到同样的错误但是jsonb[] ->> String
等等
此外,当循环遍历for item in query.all()
时,我看到 [0] 导致(None,)
而 [1] 导致
({
"status": "closed",
"created_at": "2023-01-27T18:05:27.579817",
"previous_status": "open"
},)
作为元组...
秘密在于 [0] 不是第一个元素。 [1] 还注意到 [-1] 似乎没有给我最后一个元素,所以我还必须订购我聚合的 json 个对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.