我有一个有名称和数字的两列CSV。有些人的名字使用逗号,例如Joe Blow, CFA。这个逗号打破了CSV格式,因为它被解释为一个新列。

我已经读过了,最常见的处方似乎是替换字符,或替换分隔符,用一个新值(例如,这个|那个|the,其他)。

我真的希望保留逗号分隔符(我知道excel支持其他分隔符,但其他解释器可能不支持)。我还想在名字中保留逗号,因为Joe Blow| CFA看起来很傻。

是否有一种方法在CSV列中包含逗号而不破坏格式,例如通过转义它们?


当前回答

您可以使用平面文件连接管理器中的Text_Qualifier字段作为“。这应该用引号来包装您的数据,并且仅用引号外的逗号分隔。

其他回答

我发现一些应用程序,如Mac中的Numbers,如果双引号前面有空格,就会忽略它。

A, b,c不行而A, b,c可以。

这不是一个完美的解决方案,但你可以把所有使用逗号的地方都换成,或者更低的引号。它看起来非常非常类似于逗号,并且在视觉上具有相同的目的。不需要报价

在JS中就是这样

stringVal.replaceAll(',', '‚')

不过,在需要直接比较数据的情况下,你需要非常小心

你可以使用模板字面值(模板字符串)

例如,

`"${item}"`

你需要引用这些值。 这是一个更详细的规范。

根据您的语言,可能有to_json方法可用。这将避免破坏csv的许多事情。