我想使用
将csv文件导入SQLite数据库sqlite> .separator ,
sqlite> .mode csv data
sqlite> .import test.csv data
其中data
是包含三列的表名,就像文件一样。
该文件具有一些使用双引号封装的字符串值。
一些字符串值中包含逗号(来自文件"Bond\, James"
的实际示例),应将其视为单个列,但SQLite会产生错误
Error: test.csv line 2: expected 3 columns of data but found 4
如何让SQLite正确导入这些值?
答案 0 :(得分:2)
我知道这有点旧,但这是第一个相关的谷歌搜索结果,所以我想分享我的解决方案。
使用其他分隔符,并删除值周围的引号。
sed -i -e 's/","/|/g' -e 's/"$//g' -e 's/^"//g' file.csv
sqlite> .separator "|"
sqlite> .import file.csv tablename
答案 1 :(得分:0)
我自己也遇到过这个问题,并且发现修改脚本要容易得多,因为它转储了sql查询而不是csv分隔值。
将csv数据导入sqlite3时不仅有逗号,还有新行字符。
我建议如下: