在SQLAlchemy中区分RowProxy的json列?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQLAlchemy中区分RowProxy的json列?相关的知识,希望对你有一定的参考价值。

例如,当我执行以下代码时,结果数据类型为str

result = engine.execute('''
  SELECT CAST('{"foo": "bar"}' as JSON) as `json`
''')
row = result.fetchone()
json = row[0]
type(json)

具有str类型的json列值并不是元编程友好的。

Question

有没有办法从result(或ResultProxy的一个实例)获取每列类型的信息?

env

  • mysql:8.0.11
  • SQLAlchemy:1.3.0
  • pymysql:0.9.3
答案

您至少可以通过明确的telling SQLAlchemy that the result is JSON实现它:

from sqlalchemy.types import JSON

stmt = text('''SELECT CAST('{"foo": "bar"}' as JSON) as `json`''')
stmt = stmt.columns(json=JSON)

row = engine.execute(stmt).fetchone()
type(row.json)

以上是关于在SQLAlchemy中区分RowProxy的json列?的主要内容,如果未能解决你的问题,请参考以下文章

JS中区分参数方法

RestKit:在 didLoadResponse 中区分多个请求:

在firebase中区分普通用户和管理员的最佳方法是啥? [复制]

在 Java 的 JTextArea 中区分拖动和选择

在 QTableWidget 中区分交替行颜色和选择颜色

如何在 Mac 上的 C# 中区分进程的用户