Mam pole JSONB, które czasami ma zagnieżdżone klucze. Przykład:Filtr SQLAlchemy według kluczy zagnieżdżonych w JSONB
{"nested_field": {"another URL": "foo", "a simple text": "text"}, "first_metadata": "plain string", "another_metadata": "foobar"}
Jeśli robię .filter(TestMetadata.metadata_item.has_key(nested_field))
uzyskać ten rekord.
Jak mogę wyszukać istnienie zagnieżdżonego klucza? ("a simple text"
)
Awesom e ... IMHO nie jest jasne, że Indeks ścieżki jest zagnieżdżonym JSON, ale może to tylko ja. Przy okazji - dla sprawdzenia pod kątem wartości wolałbym użyć wewnętrznego: '.filter (TestMetadata.metadata_item [klucz] .astext == wartość)' Gdzie klucz jest krotką – Boaz
Jasne, chociaż twoje pytanie było więcej * sprawdź istnienie * i nie * sprawdź wartość * typu rzeczy. – van
masz całkowitą rację ... Potrzebowałem ich obu (i najwyraźniej imp. Jest inne, ponieważ has_key nie obsługuje krotki) – Boaz