SQLite导入CSV文件 - 预计3列,找到1948年

时间:2012-10-31 01:29:22

标签: sqlite csv

我正在尝试将CS​​V文件(在https://github.com/veekun/pokedex/blob/master/pokedex/data/csv/pokemon_species_names.csv找到的Pokemon CSV文件)导入SQLite3。我使用以下行创建了一个表:

sqlite> create table pokemon_species_names (pid integer, lang integer, pokemonName text, genus text);

当然,哪个工作正常,但是当我尝试导入上面的CSV文件时,我收到以下错误:

sqlite> .separator ","(编辑:最初忘了添加这个,但我确实也运行了这个)

sqlite> .import ./pokemon_species_names.csv pokemon_species_names

Error: ./pokemon_species_names.csv line 1: expected 4 columns of data but found 1948

为什么只有4?

时会找到1948列数据?

4 个答案:

答案 0 :(得分:3)

SQLite可能没有找到合适的分隔符。尝试运行:

.separator ","

导入之前。

答案 1 :(得分:0)

回答我自己的问题。原来我使用的文件有问题,因为我修改了它(在Excel中)。我使用了原始的,未经修改的文件,并且它有效。感谢glibdud和Larry Lustig指出我正确的方向。

答案 2 :(得分:0)

你的csv文件应该用Unicode(UTF-8)Unix(LF)编码 您可以从TextWrangler

执行此操作

如果你从windows / mac保存它,它是Windows(CRLF)或经典Mac(LF)

答案 3 :(得分:0)

对于任何看过这个(5年后)的人,在Mac上的TextWrangler中,选择“另存为”Unicode(UTF-8)和Unix(LF)。然后.import将像魅力一样工作。