【问题标题】:How to import quoted data from a CSV file into SQLite?如何将引用数据从 CSV 文件导入 SQLite?
【发布时间】:2021-03-05 08:39:42
【问题描述】:

更好的进展:

nicholas@mordor:~/csv$ 
nicholas@mordor:~/csv$ sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 
sqlite> .import BCCDC_COVID19_Dashboard_Case_Details.csv details

...

BCCDC_COVID19_Dashboard_Case_Details.csv:25475: unescaped " character
BCCDC_COVID19_Dashboard_Case_Details.csv:25475: unescaped " character
sqlite> 
sqlite> select * from details limit 3;
2020-01-26","Out of Canada","M","40-49","Lab-diagnosed
2020-02-02","Vancouver Coastal","F","50-59","Lab-diagnosed
2020-02-05","Out of Canada","F","20-29","Lab-diagnosed
sqlite> 
sqlite> select "AGE_Group" from details limit 3;
AGE_Group
AGE_Group
AGE_Group
sqlite> 

感谢下面的回答。

如何将this 数据导入sqlite

nicholas@mordor:~/csv$ 
nicholas@mordor:~/csv$ sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 
sqlite> .mode csv
sqlite> 
sqlite> .import BCCDC_COVID19_Dashboard_Case_Details.csv details;
CREATE TABLE details;(...) failed: near ";": syntax error
sqlite> .quit
nicholas@mordor:~/csv$ 
nicholas@mordor:~/csv$ head BCCDC_COVID19_Dashboard_Case_Details.csv 
"Reported_Date","HA","Sex","Age_Group","Classification_Reported"
"2020-01-26","Out of Canada","M","40-49","Lab-diagnosed"
"2020-02-02","Vancouver Coastal","F","50-59","Lab-diagnosed"
"2020-02-05","Out of Canada","F","20-29","Lab-diagnosed"
"2020-02-05","Out of Canada","M","30-39","Lab-diagnosed"
"2020-02-11","Interior","F","30-39","Lab-diagnosed"
"2020-02-20","Fraser","F","30-39","Lab-diagnosed"
"2020-02-21","Fraser","M","40-49","Lab-diagnosed"
"2020-02-27","Vancouver Coastal","F","60-69","Lab-diagnosed"
"2020-02-28","Vancouver Coastal","F","30-39","Lab-diagnosed"
nicholas@mordor:~/csv$ 

引号似乎有问题的地方。

我还有tried不同的模式和其他设置:

sqlite> 
sqlite> .mode ascii
sqlite> .separator ","
sqlite> 

没有成功。引用泛型documentation

也许:

How to import quoted data from a CSV file using mysqlimport?

将使用csvsql 工具。

【问题讨论】:

    标签: database sqlite csv text import


    【解决方案1】:

    双引号不是问题。问题是;。点命令不以分号 ; 结尾。命令行将分号解释为表名的一部分。

    【讨论】:

    • 啊,谢谢。我更新了q,数据还是有问题。
    【解决方案2】:

    出于某种原因,他们在 CSV 中的所有内容都加上了引号,所以:

    nicholas@mordor:~/csv$ 
    nicholas@mordor:~/csv$ rm covid.db 
    nicholas@mordor:~/csv$ 
    nicholas@mordor:~/csv$ touch covid.db
    nicholas@mordor:~/csv$ 
    nicholas@mordor:~/csv$ csvsql --db sqlite:///covid.db --table cases --insert BCCDC_COVID19_Dashboard_Case_Details.csv 
    nicholas@mordor:~/csv$ 
    nicholas@mordor:~/csv$ csvsql --db sqlite:///covid.db --table labs --insert BCCDC_COVID19_Dashboard_Lab_Information.csv 
    nicholas@mordor:~/csv$ 
    nicholas@mordor:~/csv$ sqlite3 covid.db 
    SQLite version 3.31.1 2020-01-27 19:55:54
    Enter ".help" for usage hints.
    sqlite> 
    sqlite> .schema
    CREATE TABLE cases (
        "Reported_Date" DATE NOT NULL, 
        "HA" VARCHAR NOT NULL, 
        "Sex" VARCHAR NOT NULL, 
        "Age_Group" VARCHAR NOT NULL, 
        "Classification_Reported" VARCHAR NOT NULL
    );
    CREATE TABLE labs (
        "Date" DATE NOT NULL, 
        "Region" VARCHAR NOT NULL, 
        "New_Tests" FLOAT NOT NULL, 
        "Total_Tests" FLOAT NOT NULL, 
        "Positivity" FLOAT NOT NULL, 
        "Turn_Around" FLOAT NOT NULL
    );
    sqlite> 
    sqlite> select "Reported_Date","HA","Classification_Reported" from cases limit 3;
    2020-01-26|Out of Canada|Lab-diagnosed
    2020-02-02|Vancouver Coastal|Lab-diagnosed
    2020-02-05|Out of Canada|Lab-diagnosed
    sqlite> 
    sqlite> select "Date","Region" from labs limit 3;
    2020-01-23|BC
    2020-01-23|Fraser
    2020-01-23|Interior
    sqlite> 
    

    哪个有效。

    见:

    How to import quoted data from a CSV file using mysqlimport?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      相关资源
      最近更新 更多