SQLite在文本字段中使用逗号导入csv文件

时间:2014-03-19 15:22:04

标签: sqlite csv csv-import

我想使用

将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正确导入这些值?

2 个答案:

答案 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时不仅有逗号,还有新行字符。

我建议如下:

  • 修改脚本以生成sql转储
  • 将csv转储转换为sql 查询并将其提供给sqlite3