Re:how to completely own an airline in 3 easy steps
by dylan604 on Thursday January 19, 2023 @09:18PM
(#34448396)
I just had one today that had the last char of a field as '\', which escaped the closing quote and then munged the column count from there.
[ Parent
| on HN ]
Re:how to completely own an airline in 3 easy steps
by Dylan16807 on Thursday January 19, 2023 @10:48PM
(#34448999)
Isn't that your parser's problem? I don't think true CSV has any special characters other than comma, quote, and CRLF.
Re:how to completely own an airline in 3 easy steps
by dylan604 on Thursday January 19, 2023 @11:13PM
(#34449168)
I thought it strange too. I saw what the issue was, and just "fixed" it be correcting the data in the CSV. For the lulz, I guess I could have played with the parser's options on deciding what is needed to be escaped. However, the data would have still been incorrect as the '\' is definitely not part of the desired content, so ultimately it was better to correct the input. i would kind of rather the import die than having the potential foot gun of '\' in a field for later sabotage.
Re:how to completely own an airline in 3 easy steps
by fy20 on Thursday January 19, 2023 @10:55PM
(#34449043)
How do I name my child CRLF?
Re:how to completely own an airline in 3 easy steps
by dylan604 on Thursday January 19, 2023 @11:10PM
(#34449143)
earn Musk money, you can name your child WTF you want
Re:how to completely own an airline in 3 easy steps
by asdfghjkuytrf on Friday January 20, 2023 @07:21AM
(#34452092)
i think you failed to parse the technical joke
Re:how to completely own an airline in 3 easy steps
by dylan604 on Friday January 20, 2023 @01:10PM
(#34457171)
no, i totally got the line ending joke. i'm not an ID10T
Re:how to completely own an airline in 3 easy steps
by dagw on Friday January 20, 2023 @03:11AM
(#34450350)
Unless it's a CSV file exported from a Nordic locale Excel, in which case your CSV exports will use semi-colon as column separators and commas as decimal points. And yes the filename will still end with ".csv"
So the following Excel export I just did will parse perfect fine with your CSV parser but give you completely the wrong thing:
1;2,3;3,3
2;7,3;9,3
3;4,5;7,5
Re:how to completely own an airline in 3 easy steps
by Tijdreiziger on Friday January 20, 2023 @08:55AM
(#34453142)
That has nothing to do with the Nordics, but with the decimal separator. In locales that use a comma as the decimal separator (i.e., most European locales), Excel uses a semicolon as CSV separator.
Re:how to completely own an airline in 3 easy steps
by Someone on Friday January 20, 2023 @03:39AM
(#34450475)
* * *
Re:how to completely own an airline in 3 easy steps
by Dylan16807 on Friday January 20, 2023 @04:05AM
(#34450611)
I think it's valid to argue that you shouldn't be able to put some of commas, quotes, and newlines inside fields at all. And comma versus semicolon.
But that doesn't extend to using backslash escapes in something that's legitimately trying to be CSV. That's someone getting confused and implementing a mix of data formats, or trying to be clever and making an extended CSV format.
Re:how to completely own an airline in 3 easy steps
by Someone on Friday January 20, 2023 @07:14AM
(#34452019)
It’s valid to argue that, but that means you can’t use CSV for many real-world data sets.
That, in turn, means you almost cannot use CSV in any robust solution. Even if, today, your input doesn’t have commas, quotes or newlines, can you guarantee it won’t tomorrow, next year, etc?
Re:how to completely own an airline in 3 easy steps
by forgetbook on Friday January 20, 2023 @02:09PM
(#34458134)
Yes? What do I not know that makes this question harder than it seems to me?
Re:how to completely own an airline in 3 easy steps
by Dylan16807 on Friday January 20, 2023 @02:49PM
(#34458769)
> Even if, today, your input doesn’t have commas, quotes or newlines, can you guarantee it won’t tomorrow, next year, etc?
But... but those are the ones I listed as real special characters, unlike backslash. I don't understand the question.
Re:how to completely own an airline in 3 easy steps
by aardshark on Friday January 20, 2023 @10:20AM
(#34454261)
Every field is quoted. Every field is quote-escaped.
That's all you need.
Re:how to completely own an airline in 3 easy steps
by 95014_refugee on Friday January 20, 2023 @11:43AM
(#34455703)
There are simpler and better approaches. Fortunately for us all, IP datagrams are not JSON-encoded, for example.
Re:how to completely own an airline in 3 easy steps
by gg80 on Friday January 20, 2023 @02:19AM
(#34450081)
If I’m not mistaken RFC 4180 says that quotes should be escaped by prepending them with another quote, so “” and not \” (these are not double quotes but my phone won’t let me type normal quotes), but yeah I guess it is a rather perverse value to put in a csv.
Re:how to completely own an airline in 3 easy steps
by tsimionescu on Friday January 20, 2023 @04:18AM
(#34450689)
Note that virtually no one implements that RFC. CSV is merely a style of file, not a true file format.