【问题标题】:How to append data from csv file to sqlite?如何将数据从 csv 文件附加到 sqlite?
【发布时间】:2019-08-17 06:22:04
【问题描述】:

我正在尝试将 CSV 文件中的行添加到现有表中。

在 Mac 终端中,我启动 sqlite3:

sqlite> .open 数据库.db

sqlite> .import test.csv 表

。 . .

test.csv:43200: 预期 22 列,但找到 1 - 用 NULL 填充其余列

sqlite>

请注意,csv 文件中有 43200 行。文件本身有 22 个逗号分隔的列,但 sqlite 只认为有 1 列。

【问题讨论】:

  • 可能您的 CSV 文件格式不正确。尝试用记事本打开,检查每一列是否用逗号分隔。
  • 这里是第一行的前 2 列:2019/03/21 00:00:01.813,-0.142040252686 所有后续列都有逗号。第一列是我的时间戳。日期和时间之间的空格是否可能导致问题?
  • 您的 CSV 是正确的。我认为您的问题与此有关:stackoverflow.com/questions/8878697/…
  • 谢谢。我需要将模式更改为 csv .mode csv
  • 在终端,在 sqlite> 提示符下,输入: .mode csv 默认模式是列表。在列表模式下,分隔符似乎是一个管道“|”

标签: sqlite


【解决方案1】:

根据Cgaters的发现和SQLite的官方文档:

使用“.import”命令将 CSV(逗号分隔值)数据导入 SQLite 表。 “.import”命令有两个参数,分别是要从中读取 CSV 数据的磁盘文件的名称和要插入 CSV 数据的 SQLite 表的名称。

请注意在运行“.import”命令之前将“mode”设置为“csv”很重要。这对于防止命令行 shell 尝试将输入文件文本解释为其他格式是必要的。

例子:

sqlite> .mode csv
sqlite> .import C:/work/somedata.csv tab1

【讨论】:

    猜你喜欢
    • 2021-07-21
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2017-12-21
    • 2011-05-04
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多