我正在尝试将CSV文件(在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列数据?答案 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将像魅力一样工作。