As a French, there is another problem with CSV. In the French locale, the decimal point is the comma, so "121.5" is written "121,5". It means, of course, that the comma can't be used as a separator, so the semicolon is used instead. It means that depending whether or not the tool that exports the CSV is localized or not, you get commas or you get semicolons. If you are lucky, the tool that imports it speaks the same…
Isn't this exactly what quoting solves? i.e.: ``` "1,20","2,3",hello "2,40","4,6",goodbye ``` If your tool reads CSV by doing `string_split(',', line);`, your tool is doing it wrong. There's a bunch of nuance and shit, which can make CSVs interesting to work with, but storing a comma in a field is a pretty solved issue if the tool in question has more than 5 minutes thought put into it.
Friends don't let friends export to CSV
301–310 of 459 posts
Re: Friends don't let friends export to CSV
#302Earlier quoted context omitted.
> in the real world the spec is essentially "Can you import it to Excel?" And the answer to that is always no. You will it think it's yes because it works for you, but when you send it to someone who has a different Excel version or simply different regional settings, it won't work. The recipient will first have to figure out what dialect you used to export.
I've been amazed by how much better LibreOffice is at importing CSVs in a sane manner than Excel. Its CSV import prompt is nothing short of the gold standard and puts Excel to shame. Also, even if the CSV format is completely valid, Excel will still find a way to misinterpret some of your cells in baffling ways, destroying the original data in the process if you don't notice it in time.
Re: Friends don't let friends export to CSV
#303As a French, there is another problem with CSV. In the French locale, the decimal point is the comma, so "121.5" is written "121,5". It means, of course, that the comma can't be used as a separator, so the semicolon is used instead. It means that depending whether or not the tool that exports the CSV is localized or not, you get commas or you get semicolons. If you are lucky, the tool that imports it speaks the same…
Does any tool seriously localize CSVs?
Overall, semicolon feels like the superior delimiter.
Most sensible people don't export formatted numbers (e.g. 100.000,00), but even those are pretty trivial to import.
Re: Friends don't let friends export to CSV
#304Earlier quoted context omitted.
Isn't this exactly what quoting solves? i.e.: ``` "1,20","2,3",hello "2,40","4,6",goodbye ``` If your tool reads CSV by doing `string_split(',', line);`, your tool is doing it wrong. There's a bunch of nuance and shit, which can make CSVs interesting to work with, but storing a comma in a field is a pretty solved issue if the tool in question has more than 5 minutes thought put into it.
Now all your numbers are strings
Re: Friends don't let friends export to CSV
#305I wish TSVs were more popular though. Tabs appear less frequently than commas in data.
My biggest recommendation is to avoid Excel! It will mangle your data if you let it.
Re: Friends don't let friends export to CSV
#306I've never come across this Parquet-format, is it grep:able? Gzip:ed CSV is. Can a regular bean counter person import Parquet into their spreadsheet software? A cursory web search indicates they can't without having a chat with IT, and SQL might be easier while XML seems pretty straightforward.
Yes, CSV is kind of brittle, because the peculiarities with a specific source is like an informal schema but someone versed in whatever programming language makes this Parquet convenient won't have much trouble figuring out a CSV.
Re: Friends don't let friends export to CSV
#307Earlier quoted context omitted.
ASCII has had field and record separators since like, forever. Wish we had kept using those.
Does it have nesting operators? I want to embedd ASCII within my ASCII fields. So I can have a table within my table.
Regarding visibility in editors, if you are nesting tables I don't think you care too much about manual editing, but if you do, it is easy to setup vim/emacs/vscode to display the ASCII separators. I am being told even notepad++ can display those, there are no excuses.
Re: Friends don't let friends export to CSV
#308Earlier quoted context omitted.
You have searched for packages that names contain parquet in suite(s) bookworm, all sections, and all architectures. Sorry, your search gave no results https://packages.debian.org/search?suite=bookworm&searchon=n...
By the same logic, there's no Photoshop Document support – but GIMP and Krita both support it.
You have searched for photoshop in packages names and descriptions in
suite(s) bookworm, all sections, and all architectures (including
subword matching). Found 9 matching packages.
Package abr2gbr
bookworm (stable) (graphics): Converts PhotoShop brushes to GIMP
1:1.0.2-5: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x
Package gimp
bookworm (stable) (graphics): GNU Image Manipulation Program
2.10.34-1+deb12u2: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x
:
https://packages.debian.org/search?suite=bookworm§ion=al...Re: Friends don't let friends export to CSV
#309Files in .csv.gz are more compact than anything else, unless you have some very-very specific field of work and a very compressible data. As far as I remember, Parquet files are larger than CSV with the same data.
Working with the same kind of data in Rust, I see everything saved and loaded in CSV is lightning fast. The only thing you may miss is indexing.
Whereas saving to binary is noteably slower. A data in generic binary format becomes LARGER than in CSV. (Maybe if you define your own format and write a driver for it, you'll be faster, but that means no interoperability at all.)
Re: Friends don't let friends export to CSV
#310Earlier quoted context omitted.
There are characters from ASCII for delimiting records, which are underused because they cause confusion about whether they should be represented as a state change like a backspace character, or as a glyph. See also: "nobody can agree on the line ending character sequence". The USV proposal uses additional codepoints introduced in Unicode for the representation of the record delimiters, so they will always look and e…
> nobody is using them for some other purpose. There's a lot of tooling which uses them for their intended purpose , which is to represent the C0 control characters in a font, so they can be printed when they appear in a document. Your editor is probably one of those. Which is why I consider USV a terrible idea. If I see ␇ in a file, I don't want to be constantly wondering if it's "mention ␇" or "use ␇ to represent \…
I share the lament: the whole table issue was solved before it became a problem. POSIX divides ASCII into portable and non-portable characters; only portable characters are allowed in the fields and separators are non-portable. If you need nesting, use a portable encoding of the inner table. This scheme repeats indefinitely without escaping hell or exceptions, preventing tons of errors and headache.
Visibility is such a bizarre complaint. Text editors already handle control characters: they handle tabs, they handle newlines, it is not a tremendous, earth-shattering feature request to make them handle separators gracefully.