使用SQLAlchemy,以下应适用于您的测试字符串:
class Testmetadata(base): id = Column(Integer, primary_key=True) name = Column(String) metadata_item = Column(JSONB)
根据(搜索 路径索引操作
示例的)SQLAlchemy文档
JSONB:
__
expr = Testmetadata.metadata_item[("nested_field", "a simple text")]q = (session.query(Testmetadata.id, expr.label("deep_value")) .filter(expr != None) .all())它应生成
SQL以下内容:
SELECt testmetadata.id AS testmetadata_id, testmetadata.metadata_item #> %(metadata_item_1)s AS deep_valueFROM testmetadataWHERe (testmetadata.metadata_item #> %(metadata_item_1)s) IS NOT NULL-- @params: {'metadata_item_1': u'{nested_field, a simple text}'}


