ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

《python数据分析基础》4.1.1:报错——sqlite3.OperationalError: table csv has 5 columns but 4 values were supplied

2020-04-30 15:39:20  阅读:778  来源: 互联网

标签:4.1 python supplied 20 报错 table VARCHAR csv


第一个报错:sqlite3.OperationalError: table csv has 5 columns but 4 values were supplied

原因:没有使用与作者一致的csv数据内容
我的csv文件内容为4.1中的数据内容,进行了重复而已
在这里插入图片描述
这个csv与作者的csv不同之处在于只有四列,作者有五列,但是在

table = """CREATE TABLE IF NOT EXISTS csv
        (csv_name VARCHAR(20),
        customer VARCHAR(20),
        product VARCHAR(40),
        amount FLOAT,
        date DATE);
        """

一开始没有进行数据拉伸,所以刚好行也是五行,认为在表头添加了就可以的
在这里插入图片描述
但是(读取方式不是行而是列读取)
所以一共只有四列,此处csv_name VARCHAR(20),需要去掉即

table = """CREATE TABLE IF NOT EXISTS csv
        (
        customer VARCHAR(20),
        product VARCHAR(40),
        amount FLOAT,
        date DATE);
        """

但是这里比较坑的地方在于,即使出错,生成的sqlite.db也会生成,于是再次运行时就会继续报错
在这里插入图片描述
需要删除进行在运行才可以,否则一直出现这个报错。

第二个报错
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 5, and there are 4 supplied.

在这里插入图片描述

原因:没有使用与作者一致的csv数据内容
我的csv文件内容为4.1中的数据内容,进行了重复而已

这个主要在于插入数据占位的“?”处多给了一个“?”

for row in file_reader:
data=[]
for column_index in range(len(header)):
    data.append(row[column_index])
print(data)
statement = 'INSERT INTO csv VALUES(?,?,?,?,?);'

也是由于我的只有四列数据,但是占位5个位置导致的报错

修改之后成功
在这里插入图片描述
在这里插入图片描述
不按照书上的来有好处也有坏处,
好处就是需要自己解决问题、看报错内容
坏处就是学习进度慢

标签:4.1,python,supplied,20,报错,table,VARCHAR,csv
来源: https://blog.csdn.net/python__reported/article/details/105819509

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有