.将CSV导入sqlite3数据库
我绝对是在当头棒喝,因为没有其他答案对我有效 我有一个CSV文件…这里有10行作为一个例子.将CSV导入sqlite3数据库,csv,sqlite,Csv,Sqlite,我绝对是在当头棒喝,因为没有其他答案对我有效 我有一个CSV文件…这里有10行作为一个例子 Row 1: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4813A Row 2: F.05.80 6-Jul-15 3-Nov-15 Release notes 1.67 MB » Row 3: https://h10145.
Row 1: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4813A
Row 2: F.05.80 6-Jul-15 3-Nov-15 Release notes 1.67 MB »
Row 3: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4903A
Row 4: I.10.107 24-Aug-15 2-Nov-15 Release notes 3.49 MB »
Row 5: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9019B
Row 6: Q.11.76 6-Feb-17 21-Feb-17 Release notes 2.80 MB »
Row 7: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9022A
Row 8: N.11.76 6-Feb-17 21-Feb-17 Release notes 3.11 MB »
Row 9: https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9147A
Row 10: W.15.14.0015 23-Mar-17 30-Mar-17 Release notes 9.16 MB »
下面是CSV文件的屏幕截图
我还为此创建了一个数据库文件。它的名字是Test.db。在该数据库中,有一个名为output的表
当我运行.schema Output
时,我得到
`CREATETABLE(输出(“”文本)
我正在尝试使用SQLite命令行来解决此问题
`C:\Windows\System32>sqlite3 c:\source\test.db
sqlite> .separator ,
sqlite> .mode csv
sqlite> .import c:/source/output_file.csv Output`
我收到了这个错误消息
c:/source/output_file.csv:59:预期有1列,但找到6列-忽略额外内容
此错误发生在从1到59的每一行上
我在这里遗漏了什么?您的表的架构看起来已损坏,可能是因为格式使用不当,但它看起来只有一列。 图片中的输入文件显示您有许多
,
(顺便说一句,您在问题中的输入报价没有显示这一点。)
您正在使用
,
作为分隔符,用一列填充表格。也就是说,sqlite在导入中看到许多列,只有一列需要填充 制作一个有六列的表格。
从安全的开始,即六列varchar(300)
或者,使用输入文件中没有的分隔符只导入一列。这将适用于只有一列的表。回答我自己的问题: 我用来导入的CSV格式不好。我用一列和一个特定的标题字段重新创建了它,它工作正常
感谢Yunnosch的指导似乎文件的第59行会很有趣。它是十行引号中的一行吗?我试过你的描述,对我来说很有用,在我应该提到的同一个文件夹中有一个文件。所以它应该是
。import import.sql toy
。试着用一个特殊的测试文件做同样的事情。用一个l做最简单的测试每行显示一个。显示表的架构。每行是否都有相同的错误?不仅是每行?不是每行,而是每行的列数不同?显示表的架构,确保其可读性。请尝试使用。
上的标题从输出中选择*
。我认为它只会显示一个cocolumn.您使用的是sqlite命令行工具,不是吗?不要让GUI对您隐藏相关信息。我可能会对输入文件做一些不同的操作。我的老板刚刚告诉我,我们不需要所有6列中的数据,所以我要将我的程序改为只拉1列…我认为导入1列应该就行了…我会继续跟您联系如果需要,请注明日期并关闭此问题。请在关闭前显示表的可读模式好吗?我有点固执,我承认我希望看到我是对的。因此,将csv作为一列导入只有一列的表中是可行的?它一直只有一列?不,它从6列开始。我重新处理并让它使用1列。下一步是使用2列修复它。这CREATETABLE(输出(“https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4813A“案文)
make six columns?它肯定是坏的,但是如果有什么问题的话,它会变成一列。另外,您的错误消息会抱怨六列不适合一列。我想您的SQLite与我对一列的猜测是一致的。