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

问题描述 投票:0回答:1

有没有可能检查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))

但这也不起作用。

知道如何实现这个吗?

谢谢!

python sqlalchemy
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.