Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite导入CSV文件-应为3列,找到1948_Sqlite_Csv - Fatal编程技术网

SQLite导入CSV文件-应为3列,找到1948

SQLite导入CSV文件-应为3列,找到1948,sqlite,csv,Sqlite,Csv,我正在尝试将一个CSV文件(位于的Pokemon CSV文件)导入SQLite3。我使用以下行创建了一个表: sqlite>创建表口袋妖怪物种名称(pid整数、lang整数、口袋妖怪名称文本、属文本) 当然,这很好,但是当我尝试导入上面的CSV文件时,会出现以下错误: sqlite>.separator“,”(编辑:最初忘记添加这个,但我也运行了这个) sqlite>.import./pokemon\u species\u names.csv pokemon\u species\u names

我正在尝试将一个CSV文件(位于的Pokemon CSV文件)导入SQLite3。我使用以下行创建了一个表:

sqlite>创建表口袋妖怪物种名称(pid整数、lang整数、口袋妖怪名称文本、属文本)

当然,这很好,但是当我尝试导入上面的CSV文件时,会出现以下错误:

sqlite>.separator“,”
(编辑:最初忘记添加这个,但我也运行了这个)

sqlite>.import./pokemon\u species\u names.csv pokemon\u species\u names

错误:./pokemon_species_names.csv第1行:预期有4列数据,但找到1948列


当只有4列数据时,为什么要查找1948列数据?

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

.separator ","

导入之前。

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

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


如果您是从windows/mac保存的,则它可能是windows(CRLF)或Classic mac(LF)

对于任何查看此文件的人(5年后),请在mac上的TextWrangler中选择“另存为”Unicode(UTF-8)和Unix(LF)。然后,导入将像一个符咒一样工作

我怀疑该csv文件中存在行尾不兼容。您在什么操作系统上运行此文件?该文件在您的系统上是什么样子的?您可能有换行符问题(例如,您将一个包含Unix换行符的文件下载到Windows系统,而操作系统将其视为一行)。OS X。我有来自同一源的文件,这些文件工作正常,但我还必须修改此文件以排除某些数据。我是在Excel中这样做的。@rar你试过使用未修改的文件吗?嗯。你知道吗,它成功了!为什么会弄坏它?啊,对不起,我应该指定是我做的。我将把它添加到我的问题中。