python - 如何将 sqlalchemy 查询作为字典返回?
问题描述
我正在使用 python 中的panoply SDK。Panoply 网站文档
Panoply 是一个数据仓库,我使用 python 中的 SDK 直接写入仓库。我正在使用sqlalchemy
从 mysql 数据库中查询我的结果,并且 SDK 要求结果在字典中。
{ "column": "value" }
到目前为止我的代码:
>>>from sqlalchemy import create_engine
>>>result = engine.execute("""\
SELECT
creation_date,
COUNT(*) AS total
FROM SomeTable
GROUP BY 1
""")
>>>result = result.fetchall()
>>>result
[('2020-02-05', 41606), ('2020-02-06', 31223)]
>>>cols = result.keys()
>>>cols
['creation_date', 'trips']
整体示例:
import panoply
conn = panoply.SDK( "APIKEY", "APISECRET" )
conn.write( "tablename", { "foo": "bar" } )
如何将我的sqlalchemy
查询转换为 panoply 需要写入数据库的格式?
解决方案
由于 panoply 支持一次只写入一行,因此无需使用该fetchall
方法一次将所有行检索到内存中,这可能会非常低效。相反,遍历游标并使用该items
方法将每一行检索为键值元组序列,以便您可以使用构造函数构造一个 dict 以dict
输入 panoply 的write
方法:
for row in result:
conn.write('tablename', dict(row.items()))
推荐阅读
- python - 解析复合体
- 使用 beautifulSoup 标记
- python - 尝试为彩色图像训练图像分类器时出现以下错误
- android - 如何获得暂停并进入后台的活动?
- flutter - 日期选择器高度的 Flutter Web 错误
- angular7 - 垫分页器问题
- python - Django:在模型的字段上设置 unique_together 以及字段条件
- oracle - 获取总数
- swiftui - 如何在swiftUI中登录页面后隐藏导航栏
- laravel - 插入数据时尝试获取非对象错误的属性“stock_name”
- javascript - 选择选项时调用 javascript 函数但在选项本身内部需要它