Sat*_*tty 10 python sqlite json sqlalchemy
是否可以使用sqlalchemy在SQLite中创建JSON类型的列?我试过了
import sqlalchemy.types as types
...
myColumn = Column(types.JSON())
Run Code Online (Sandbox Code Playgroud)
和
from sqlalchemy import JSON
...
mycolumn = Column(JSON)
Run Code Online (Sandbox Code Playgroud)
两者都收到错误消息:
编译器无法呈现类型的元素
想知道sqlalchemy中是否有任何解决方案,或者我应该改为SQL.提前致谢.
[更新] SQLite版本3.16.0
我的解决方案是:
import json
from sqlalchemy import TypeDecorator, types
class Json(TypeDecorator):
@property
def python_type(self):
return object
impl = types.String
def process_bind_param(self, value, dialect):
return json.dumps(value)
def process_literal_param(self, value, dialect):
return value
def process_result_value(self, value, dialect):
try:
return json.loads(value)
except (ValueError, TypeError):
return None
...
myColumn = Column("name", Json)
Run Code Online (Sandbox Code Playgroud)
有关更多信息:TypeDecorator
SQLAlchemy 1.3将包括对SQLite JSON 扩展的支持,所以不要忘记升级:
pip install --user -U --pre SQLAlchemy
Run Code Online (Sandbox Code Playgroud)
方言特定类型sqlite.JSON实现 JSON 成员访问,也可通过基本类型使用types.JSON。
| 归档时间: |
|
| 查看次数: |
3589 次 |
| 最近记录: |