gpt4 book ai didi

python - Sqlalchemy:打印表的内容

转载 作者:行者123 更新时间:2023-11-28 16:23:55 24 4
gpt4 key购买 nike

我想使用 sqalchemy 打印表格的所有内容。我似乎无法弄清楚 inspect 是如何工作的。

我想实现这样的目标:

column1: value1, column2: value4
column1: value2, column2: value5
column1: value3, column2: value6

在一个看起来像这样的表中:

Table_1:
+---------+---------+
| column1 | column2 |
+---------+---------+
| value1 | value4 |
| value2 | value5 |
| value3 | value6 |
+---------+---------+

最佳答案

虽然我不知道如何使用 inspect 执行此操作,但我通过常规查询实现了所需的输出。对于这个例子,我根据你的例子创建了一个 sqlite 表。首先,我们连接并反射(reflection)这个现有的数据库。

from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import select
eng = create_engine("sqlite:///databases/example_table.db")

Base = automap_base()
Base.prepare(eng, reflect=True)
Table = Base.classes.example_table

为了方便我们的查询,我们实例化了一个session

Session = sessionmaker(bind=eng)
session = Session()

并执行查询,将结果保存到result

stmt = select('*').select_from(Table)
result = session.execute(stmt).fetchall()

这个查询的元素是 sqlalchemy RowProxy 类的实例,它有一个 keys 方法可以用来访问列名字。因此,我们可以用一些简短的函数转换结果

def result_dict(r):
return dict(zip(r.keys(), r))

def result_dicts(rs):
return list(map(result_dict, rs))

result_dicts(result)

返回

[{'id': 1, 'column1': 'value1', 'column2': 'value4'},
{'id': 2, 'column1': 'value2', 'column2': 'value5'},
{'id': 3, 'column1': 'value3', 'column2': 'value6'}]

关于python - Sqlalchemy:打印表的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151817/

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