我有一些jquery文件,我正在使用它来自定义Django管理员。我想使用 Google 的 jquery-csv 从本地 csv 文件中提取代码表。
function getCodeTable() {
$.ajax({
url: "admin/js/custom/Sample100.csv",
aync: false,
success: function (csv) {
csv_as_objects = $.csv.toObjects(csv);
},
dataType: "text",
complete: function () {
return csv_as_objects;
}
});
}
原始csv文件由Postgres创建。当我将其放入我的项目中并尝试访问它时,出现此错误:
CSVDataError: Illegal quote [Row:3]
认为csv有问题,我在Notepad++中打开它以查找问题,但是没有看到。
我已经通过 https://csvlint.io/运行了该文件,结果是有效的。然后我下载了同一文件的标准化CSV。当我打开它并查看它时,它所做的唯一更改是在主键周围放置引号的位置。我把它放在我的项目中并运行,但返回相同的错误:
CSVDataError: Illegal quote [Row:3]
我认为 Postgres 以某种方式给了我一些格式不正确的 csv 文件,所以我 https://www.appsloveworld.com/sample-csv-file/访问了这个网站并下载了一个名为Sample100.csv
的 csv 文件,看看它是如何工作的。
返回相同的错误:
CSVDataError: Illegal quote [Row:3]
所以现在似乎我输入的任何 csv 文件都会返回相同的错误。我不知道这是否是一个jquery-csv
库问题(怀疑它(,或者我的代码中是否缺少某些内容
代码表的前 5 行.csv:
"codecategoryid","codecategorydesc","codetypeid","codetypedesc"
15,"Address Types",60,"Mailing Address"
15,"Address Types",59,"Physical Address"
15,"Address Types",61,"PO Box"
8,"Agricultural Employee Types",22,"Distribution Worker"
我的代码表的前 5 行标准化 CSV .csv从 https://csvlint.io/下载:
"codecategoryid","codecategorydesc","codetypeid","codetypedesc"
"15","Address Types","60","Mailing Address"
"15","Address Types","59","Physical Address"
"15","Address Types","61","PO Box"
"8","Agricultural Employee Types","22","Distribution Worker"
从 https://www.appsloveworld.com/sample-csv-file/下载的 Sample100.csv的前 5 行:
Serial Number,Company Name,Employee Markme,Description,Leave
9788189999599,TALES OF SHIVA,Mark,mark,0
9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0
9780198082897,MY KUMAN,Mark,Mark,0
9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2
如果您尝试在Mac上使用jQuery CSV数据解析器,它可能会给您此错误:
CSVDataError: Illegal quote [Row:3]
原因可能是保存在Mac上的CSV文件和Mac上的行尾使用特殊字符,解析器会"阻塞"它们并吐出此错误。
我能找到的唯一解决方案是从这里
如果你想要一个快速而肮脏的修复。只需添加一个"state"对象文字,其中rowNum和colNum都初始化为0。