gpt4 book ai didi

python - 在 SQLalchemy 中用列压缩行?

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:29 26 4
gpt4 key购买 nike

我正在将我的库从使用 pyodbc 转换为 SQLalchemy。不幸的是我收到了这个错误:

TypeError("unhashable type: 'list'",)

这是我的功能:

@route('/api/query/<query>') # not a public system!
def qry(query):
# `conn` is constructed with `create_engine`
last_query = conn.execute(query)

return dict(result=[{zip(last_query._metadata.keys, row)}
for row in last_query.fetchall()])

还有我的 pyodbc 一个(有效):

    conn.cursor.execute(query)
return dict(results=[dict(zip([column[0] for column
in conn.cursor.description], row))
for row in conn.cursor.fetchall()])

最佳答案

爆炸的部分是

{zip(last_query._metadata.keys, row)}

问题在于 {} 语法不会自动将元组列表转换为字典。如果您切换到

dict(zip(last_query._metadata.keys, row))

你应该可以走了。

这是 python shell 中的一个简化示例:

>>> a = ['a', 'b']
>>> b = [1, 2]
>>> {zip(a, b)}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> dict(zip(a, b))
{'a': 1, 'b': 2}

关于python - 在 SQLalchemy 中用列压缩行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17354224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com