using jquery-csv, always get the same error no matter which csv file i access

342 Views Asked by At

I have some jquery files I am using to customize Django admin. I want to draw in a code table from a local csv file using Google's jquery-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;
        }
    });
}

The original csv file is created by Postgres. When I put it in my project and try to access it, I get this error:

CSVDataError: Illegal quote [Row:3]

Thinking that there is something wrong with the csv, I have opened it in Notepad++ to look for problems, but I see none.

I have run the file through https://csvlint.io/ and it came out valid. I then downloaded their Standardized CSV of the same file. When I opened it and looked at it, the only changes it made where to put quotes around the primary keys. I put that in my project and ran, and came back with the same error:

CSVDataError: Illegal quote [Row:3]

I thought Postgres is giving me some badly formatted csv file somehow, so I went to this site https://www.appsloveworld.com/sample-csv-file/ and downloaded a csv file named Sample100.csv to see how that works.

Comes back with the same error:

CSVDataError: Illegal quote [Row:3]

So now it seems any csv file I put in comes back with the same error. I do not know if this is a jquery-csv library problem (doubt it), or if I am missing something in my code

First 5 lines of codeTable.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"

First 5 lines of Standardized CSV of my codeTable.csv downloaded from 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"  

First 5 lines of Sample100.csv downloaded from https://www.appsloveworld.com/sample-csv-file/:

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  
1

There are 1 best solutions below

3
On

If you are trying to use the jQuery CSV data parser on Mac, it might give you this error:

CSVDataError: Illegal quote [Row:3]

The reason is likely your CSV file that was saved on a Mac and line endings on Macs use special characters, and the parser “chokes” on them and spits out this error.

The only solution I can find this is from here

If you want a quick and dirty fix. Just add a 'state' object literal with rowNum and colNum both initialized to 0.