sqlalchemy 查询结果为空时,如何输出字段名
时间: 2024-02-16 15:04:46 浏览: 31
当查询结果为空时,可以通过访问查询对象的 `columns` 属性来获取所有的列对象,然后通过遍历列对象来输出所有的字段名。例如:
```python
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
engine = create_engine('sqlite:///example.db', echo=True)
metadata = MetaData()
users = Table(
'users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('age', Integer),
)
with engine.connect() as conn:
result = conn.execute(users.select().where(users.c.id == 0))
if result.returns_rows:
for col in result.columns:
print(col.name)
else:
print([col.name for col in users.columns])
```
这里的 `result.returns_rows` 属性可以判断查询结果是否为空,如果查询结果为空,则遍历表对象的 `columns` 属性来输出所有的字段名。注意,这里使用的是 `users.columns`,而不是 `users.select().columns`,因为 `users.select().columns` 会返回一个空的 `Selectable` 对象,而不是表对象的列对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)