Modin Pandas连接SQLite报错及表查询问题求助
解决Modin连接SQLite数据库的两个问题
问题1:UnsupportedDatabaseException 不支持的数据库
初始代码:
import modin.pandas as pd from modin.db_conn import ModinDatabaseConnection conn = ModinDatabaseConnection('sqlite:///test.db')
报错:modin.db_conn.UnsupportedDatabaseException: Unsupported database library sqlite:///test.db
原因:ModinDatabaseConnection的第一个参数需要指定数据库驱动类型(如sqlalchemy),而非直接传入连接字符串。
解决方法:
调整初始化方式,第一个参数传'sqlalchemy',第二个参数传SQLite连接字符串:
import modin.pandas as pd from modin.db_conn import ModinDatabaseConnection # 正确的连接方式 conn = ModinDatabaseConnection('sqlalchemy', 'sqlite:///test.db') # 可通过get_connection获取底层sqlalchemy引擎 engine = conn.get_connection()
问题2:查询存在的表时提示找不到
连接成功后,操作表出现报错:[SQL: SELECT COUNT(*) FROM (['TEST']) AS _] (Background on this error at: sqlalche.me/e/14/e3q8)
已通过inspector.get_table_names()确认表TEST存在。
原因:读取表时错误地传入了列表类型的表名(如['TEST']),导致SQL语句生成异常,把列表当成了表名表达式。
解决方法:
读取表时传入字符串类型的表名,或者使用完整的SQL查询语句:
方式1:直接传字符串表名
# 读取TEST表 df = pd.read_sql('TEST', conn)
方式2:使用完整SQL语句
# 自定义查询SQL df = pd.read_sql("SELECT * FROM TEST", conn)
内容的提问来源于stack exchange,提问作者Dalalama231123
相关产品推荐
相关产品推荐

