Python sqlite3代码可运行但报IndexError及字段末尾出现省略号问题求解
Python操作SQLite问题修复方案
问题1:IndexError列表索引越界报错
报错原因
读取weapons.txt每行内容时,存在不符合内容1;内容2;内容3格式的行:
- 可能是文件末尾存在空行
- 可能是某行的分隔符
;数量不足2个 - 可能是行首尾带有未处理的换行符、空白字符,导致拆分后列表长度小于3,访问索引
[2]时触发越界。
修复方案
遍历文件行时增加预处理和合法性校验,修改遍历插入的代码段如下:
for i in weapons_txt: # 去除行首尾所有空白字符(含换行符、空格、制表符) clean_line = i.strip() # 跳过空行 if not clean_line: continue # 拆分后统一校验长度 field_list = clean_line.split(";") if len(field_list) >= 3: # 每个字段单独去除首尾空白后再插入 cursor.execute("Insert into weapons values(?,?,?)", (field_list[0].strip(), field_list[1].strip(), field_list[2].strip())) con.commit()
问题2:source字段末尾出现多余...
报错原因
原始读取的每行末尾默认带有换行符\n,该不可见字符被存入source字段后,部分SQL查询工具会将不可见特殊字符转换为...展示。如果未做字段预处理,也可能是源文件字段末尾自带的多余空白/特殊符号导致的展示异常。
修复方案
参考问题1的修复代码,插入前对每个字段调用.strip()方法清理首尾空白和特殊字符即可解决。
内容的提问来源于stack exchange,提问作者malcom32
相关产品推荐
相关产品推荐

