我正在使用python中的panoply SDKPanoply 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/

10-13 02:34