SQLAlchemy JSON列包含嵌套json中的特定键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy JSON列包含嵌套json中的特定键相关的知识,希望对你有一定的参考价值。

有没有可能检查JSON列中的词典列表中是否有特定的键?

到目前为止我尝试过:

session.query(
    SomeClass
).filter(
    [r for r in SomeClass.some_json_column["key_that_contains_list_value"] 
    if r.get("inner_dict_key")]
)

这是我需要的功能,但似乎没有用,因为我确实得到了

AttributeError: Neither 'BinaryExpression' object nor 'Comparator' object has an attribute 'get'

或者,只要在所述JSON中的任何地方找到该密钥就足够了,所以我也试过了

.filter("inner_dict_key" in str(SomeClass.some_json_column))

但这也不起作用。

知道如何实现这个吗?

谢谢!

答案

Kinda使它与.filter(SomeClass.some_json_column["key_that_contains_list_value"][0].has_key('inner_dict_key'))合作

因为在我的情况下,列表总是包含至少一个条目,但正如您可以想象的那样,它不会给出所有答案。现在我的测试目的还可以。虽然我真的想知道是否有人得到了更好的答案。

以上是关于SQLAlchemy JSON列包含嵌套json中的特定键的主要内容,如果未能解决你的问题,请参考以下文章

python PostgreSQL JSON数据类型支持SQLAlchemy,具有用于数据更改通知的嵌套MutableDicts要使用,只需包含在某处

使用包含嵌套 JSON 字符串的一列解析 Pandas DataFrame 中的列

使用 Pandas 在巨大的 CSV 中解析带有嵌套值的 JSON 列

MySQL 嵌套 JSON 列搜索和提取子 JSON

在SQLAlchemy中区分RowProxy的json列?

SQLAlchemy:JSON_ARRAY_APPEND?