【问题标题】:.import error for CSV SQLite3CSV SQLite3 的.import 错误
【发布时间】:2013-10-09 17:41:33
【问题描述】:

我正在尝试使用 id 整数主键将数据从 csv 导入 sqlite3 数据库。看了this SO question之后,我创建了一个临时表,从一个csv文件中导入11列。

数据:

a||b||c||d||e||f||g||h||i||j||k
l||m||n||o||p||q||r||s||t||u||v

我试过了

.separator "||"
.import path/to/table tableName

我收到以下错误:

Error: path/to/table line 1: expected 11 columns of data but found 21

我做错了什么? csv 文件的格式应该不同吗?

注意: 该列表是使用类似于下面的方法在 AppleScript 中构建的。 bash 中的 echo 是否会导致问题?

set delim to "||"
set myList to {"a", delim, "b", delim, "c", delim, "d", delim, "e", delim, "f", delim, "g", delim, "h", delim, "i", delim, "j", delim, "k", return, "l", delim, "m", delim, "n", delim, "o", delim, "p", delim, "q", delim, "r", delim, "s", delim, "t", delim, "u", delim, "v", return}
set myList to myList as text
set outPath to POSIX path of (path to desktop as text) & "data.csv"
do shell script "echo " & quoted form of myList & " > " & quoted form of outPath

【问题讨论】:

  • 你用的是什么行分隔符?
  • 行分隔符是 sqlite3 选项还是您指的是 csv 文件?
  • 问因为如果换行将被删除,会有21个字段。
  • 上面发布的附加信息有帮助吗?

标签: database bash shell sqlite applescript


【解决方案1】:

return (0x0d) 本身似乎不是.import 的可识别行分隔符(尽管它可能因版本而异,因为我的.import 也只接受单个字符分隔符)

尝试在生成的 AppleScript 中将 return 替换为 linefeed

【讨论】:

  • 完美...谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 2015-11-05
  • 1970-01-01
相关资源
最近更新 更多