使用csvs_to_sqlite导入CSV至SQLite时遇read_csv参数错误
问题原因与解决方案
核心原因
报错read_csv() got an unexpected keyword argument 'error_bad_lines'的本质是csvs_to_sqlite包与新版pandas不兼容:
- pandas 2.0及以上版本彻底移除了
error_bad_lines参数,替换为on_bad_lines; - 你当前使用的csvs_to_sqlite版本未适配这个变更,内部调用pandas的
read_csv时传入了已废弃的参数,导致CSV文件加载失败,最终生成空的SQLite数据库。
解决办法
方法1:降级pandas到兼容版本
执行命令将pandas降级至1.x系列,适配csvs_to_sqlite的旧参数逻辑:
pip install pandas<2.0
降级完成后重新运行你的Python脚本,即可正常加载CSV并生成数据表。
方法2:修改csvs_to_sqlite源码适配新版pandas
- 先通过
pip show csvs_to_sqlite查看包的安装目录(Location字段); - 找到包内核心文件(通常是
csvs_to_sqlite/cli.py或csvs_to_sqlite/utils.py),搜索所有包含error_bad_lines的代码行; - 将
error_bad_lines=False替换为on_bad_lines='skip'(原参数error_bad_lines=False的作用是跳过坏行,对应新版pandas的on_bad_lines='skip'); - 保存修改后重新运行脚本。
方法3:直接使用CLI命令调用(绕过脚本调用的潜在问题)
跳过Python脚本,直接在终端执行csvs_to_sqlite的原生命令:
csvs_to_sqlite bigmac.csv bigmac.db
内容的提问来源于stack exchange,提问作者jwesonga
相关产品推荐
相关产品推荐

