buh*_*htz 5 sqlite json sqlalchemy
这只是一个简单的例子。
field = [[1,12,6], [2,12,8]]
Run Code Online (Sandbox Code Playgroud)
我想用sqlite3数据库中的SQLAlchemy将其存储在json类型的字段中。
但是,如何使用SQLAlchemy(而非SQL)对此进行查询?例如
可能吗?
也许用经典的多对多表(包括链接表)而不是json-field来简化这一过程会更容易吗?
根据官方文档,这些是 SQLAlchemy 为 JSON 字段提供的可用方法。
JSON 提供了几种操作:
索引操作:
data_table.c.data['some key']
Run Code Online (Sandbox Code Playgroud)
返回文本的索引操作(文本比较所需):
data_table.c.data['some key'].astext == 'some value'
Run Code Online (Sandbox Code Playgroud)
带有内置 CAST 调用的索引操作:
data_table.c.data['some key'].cast(Integer) == 5
Run Code Online (Sandbox Code Playgroud)
路径索引操作:
data_table.c.data[('key_1', 'key_2', ..., 'key_n')]
Run Code Online (Sandbox Code Playgroud)
返回文本的路径索引操作(文本比较所需):
data_table.c.data[('key_1', 'key_2', ..., 'key_n')].astext == \
'some value'
Run Code Online (Sandbox Code Playgroud)
http://docs.sqlalchemy.org/en/latest/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON
根据我对 PostgreSQL 中 JSON 类型的了解,最好仅在您想要整个 JSON 对象时使用它。如果你想对 JSON 对象的字段进行类似 SQL 的操作,那么最好使用经典的 SQL 关系。这是我发现的一个来源说同样的话,但还有更多。http://blog.2ndquadrant.com/postgresql-anti-patterns-unnecessary-jsonhstore-dynamic-columns/
| 归档时间: |
|
| 查看次数: |
2460 次 |
| 最近记录: |