我有一个查询,看起来像这样。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
。我试着输入字符串类型的转换数据,我得到了同样的错误,但是jsonb[] ->> String
等等
另外,当循环通过项for item in query.all()
时,我看到[0]导致(None,)
,[1]导致
({
"status": "closed",
"created_at": "2023-01-27T18:05:27.579817",
"previous_status": "open"
},)
作为元组...
1条答案
按热度按时间umuewwlo1#
秘密是[0]不是第一个元素。[1]也被注意到[-1]似乎没有给予我最后一个元素,所以我也必须排序我的聚合json对象。