【发布时间】:2017-01-20 11:39:42
【问题描述】:
假设我有一个名为 Item 的模型,其中包含一个 JSONB 字段 data。其中一条记录存储了以下 JSON 对象:
{
"name": "hello",
"nested_object": {
"nested_name": "nested"
},
"nested_list": [
{
"nested_key": "one"
},
{
"nested_key": "two"
}
]
}
我可以通过过滤name 字段找到这条记录:
Session().query(Item).filter(Item.data["name"] == "hello")
我可以通过过滤嵌套对象来找到这条记录:
Session().query(Item).filter(Item.data[("nested_object","nested_name")] == "hello")
但是,我正在努力寻找一种方法来通过过滤存储在嵌套列表中的项目的值来找到此记录。
换句话说,如果用户提供了值“一”,我想找到上面的记录,并且我知道在 nested_list 内的键 nested_key 中查找它。
是否可以使用可用的 SQLAlchemy 过滤器来实现这一点?
【问题讨论】:
标签: python json postgresql sqlalchemy