为什么我使用pd.read_sql_query执行SQL后没有显示查询结果?
问题原因
- 在普通
.py脚本执行场景下,Python 不会自动输出函数调用的返回值,你直接执行run_query(query)仅会生成对应的Pandas DataFrame对象,但没有显式的输出指令,所以控制台不会有结果展示。加上print()之后相当于主动告知Python要将返回值打印到控制台,因此可以正常看到结果。 - 若你使用的是Jupyter Notebook/Lab这类交互笔记环境,只有单元格的最后一行执行结果会被默认渲染输出,如果
run_query(query)不是单元格的最后一行代码,也会出现无输出的情况。
修复方案
- 普通Python脚本场景,直接保留
print(run_query(query))的写法即可,执行完成后记得调用db.close()关闭数据库连接,避免资源占用。 - Jupyter 场景可直接将查询结果赋值给变量后,单独在单元格末尾写变量名,即可自动渲染为表格样式:
import sqlite3 import pandas as pd db = sqlite3.connect("hubway.db") def run_query(query): return pd.read_sql_query(query, db) query = 'SELECT * FROM trips LIMIT 5;' df = run_query(query) df
内容的提问来源于stack exchange,提问作者Almond75
相关产品推荐
相关产品推荐

