различать столбец JSON RowProxy в SQLAlchemy? - PullRequest
0 голосов
/ 13 марта 2019

Например, когда я выполняю следующий код, результирующий тип данных будет str:

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

Значение столбца json, имеющее тип str, не очень удобно для метапрограммирования.

Вопрос

Есть ли способ извлечь информацию из result (или экземпляра ResultProxy), какой был тип каждого столбца?

окр

  • MySQL: 8.0.11
  • SQLAlchemy: 1.3.0
  • pymysql: 0,9,3

1 Ответ

2 голосов
/ 13 марта 2019

Вы можете, по крайней мере, достичь этого, явно , сообщив SQLAlchemy, что результатом будет 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...