我正在使用python中的panoply SDK。 Panoply website documentation
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仅支持一次仅写入一行,因此无需使用fetchall
方法一次将所有行检索到内存中,这会导致内存效率低下。取而代之的是,遍历游标并使用items
方法以键值元组序列的形式检索每一行,以便您可以使用dict
构造函数构造一个字典,以将其输入到panoply的write
方法中:
for row in result:
conn.write('tablename', dict(row.items()))
关于python - 如何以字典形式返回sqlalchemy查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60106501/