如何处理CSV文件中的逗号?

  • 回答 (2)
  • 关注 (0)
  • 查看 (175)

我正在寻找关于如何处理正在创建,然后由我们的客户上传的csv文件的建议,并且这些文件可能具有逗号(例如公司名称)。

我们所看到的一些想法是:引用标识符(值“,”值“,”等)或使用| 而不是逗号。最大的问题是我们必须简化,否则客户不会这样做

DEA林晨曦DEA林晨曦提问于
秋之夕颜清念念不忘,必有回响回答于

CSV格式使用逗号分隔值,包含回车符,换行符,逗号或双引号的值用双引号括起来。包含双引号的值被引用,并且每个文字引号都被紧接的前面的引号转义:例如,3个值:

test
list, of, items
"go" he said

将被编码为:

test
"list, of, items"
"""go"" he said"

任何字段都可以被引用,但只有包含逗号,CR / NL或引号的字段必须被引用。

CSV格式没有真正的标准,但几乎所有的应用程序都遵循这里记录的约定。在其他地方提到的RFC不是CSV的标准,它是在MIME中使用CSV的RFC,并包含一些非常规和不必要的限制,使其在MIME之外无用。

我见过的很多CSV模块都不能容纳的一个问题是,多行可以在单个字段中编码,这意味着您不能假定每行都是单独的记录,您可能不需要在您的数据或准备处理这个

MyLove回答于

于2017年,csv完全指定 - RFC 4180。

这是一个非常常见的规范,并被许多库(例子)完全覆盖。

只需使用任何容易获得的csv库 - 也就是说RFC 4180。

实际上有一个CSV格式的规范,以及如何处理逗号:

包含换行符(CRLF),双引号和逗号的字段应用双引号括起来。

http://tools.ietf.org/html/rfc4180

所以,有价值观foo和bar,baz,你这样做:

foo,"bar,baz"

另一个需要考虑的重要要求(也来自规范):

如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在另一个双引号之前进行转义来进行转义。例如:

"aaa","b""bb","ccc"

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答
  • 小书虫

    0 粉丝1 提问2 回答

扫码关注云+社区

领取腾讯云代金券