При использовании node-csv-parse, можете ли вы указать некоторые поля для текстовой квалификации, а некоторые нет?
Используя SSDT, я могу указать, являются ли отдельные поля текстовыми или нет. Это полезно для файла CSV, который я анализирую, где только одно из полей имеет текстовый формат (я не могу легко попросить экспорт, где все поля имеют текстовый квалификатор).
Используя библиотеку синтаксического анализа CSV adaltas / node-csv-parse, я вижу, что вы можете указать квалификатор текста (т.е. quote
param) но это, кажется, для всех полей или без полей.
Можно ли указать, что определенные поля текстовые (то есть "qualified"
и некоторые поля НЕ должны быть текстовыми (то есть not qualified
)? Тогда, так как это кажется хорошим местом, чтобы спросить его, возможно ли указывать разные квалификаторы для разных полей при разборе CSV?
Я не думаю, что в спецификации CSV есть что сказать по этому поводу, но не должны ли все поля или поля не быть текстовыми?
1 ответ
В csv кавычки используются вокруг полей, которые содержат разделитель (или другую кавычку или символ новой строки в многострочных полях):
123,"some, text",456
Избегание цитат:
123,"24"" monitor, Samsung",456
Многострочное поле:
123,"some text on
multiple lines",456
Это фактически единственное назначение кавычек в CSV (за исключением некоторых особых случаев для Excel).
Их не нужно использовать на других данных:
123,"some, text",456
234,some text,567
Использование кавычек не означает, что поля должны рассматриваться как текст против числа. Это зависит от приложения:
123,"some, text","456,2"
"234,41",some text,"5,67"
Поэтому в общем случае csv-писатель должен размещать кавычки только там, где это необходимо (все остальные кавычки занимают только дополнительное место и время разбора).