我've got a two column CSV with a name and a number. Some people'的名称使用逗号,例如 Joe Blow, CFA.
此逗号分隔CSV格式,因为它被解释为新列 .
我已经阅读过,最常见的处方似乎是用新值替换该字符或替换分隔符(例如 this|that|the, other
) .
我也喜欢在名字中保留逗号,因为 Joe Blow| CFA
看起来很傻 .
有没有办法在不破坏格式的情况下在CSV列中包含逗号,例如通过转义它们?
10 回答
CSV格式的问题是,没有一个规范,有几种可接受的方法,无法区分哪些应该使用(用于生成/解释) . 我在another post中讨论了所有逃避字符的方法(在这种情况下换行,但基本前提相同) . 基本上,它归结为为目标用户使用CSV生成/转义过程,并希望其他人不介意 .
Reference spec document .
将该字段括在引号中,例如
见wikipedia .
Updated :
要对报价进行编码,请使用
"
,字段中的单引号将编码为""
,整个字段将变为""""
. 因此,如果你看到以下内容: Excel中:CSV文件将包含:
逗号简单地使用引号封装,因此
,
变为","
.需要封装和引用逗号和引号,因此
","
变为""","""
.如果你想说,你可以使用引号 . 像这样的东西
现在,您可以在名称变量中使用逗号 .
你需要引用这些值 .
Here是一个更详细的规范 .
除了其他答案中的要点之外:如果您在Excel中使用引号,则需要注意的一点是空格的位置 . 如果您有一行代码如下:
Excel会将初始引用视为文字引用,而不是使用它来转义逗号 . 您的代码需要更改为
正是这种微妙之处将我带到了这里 .
我遇到了同样的问题并引用
,
没有帮助 . 最后,我用+
替换,
,完成处理,将输出保存到outfile中,并用,
替换+
. 这可能看起来很丑,但它对我有用 .您可以将Flat文件连接管理器中的
Text_Qualifier
字段用作"
. 这应该将您的数据包装在引号中,并且只能用引号之外的逗号分隔 .首先,如果项目值具有双引号字符(“),则替换为2个双引号字符(”“)
最后,换行项值:
左侧:带双引号字符(“)
ON右:带双引号字符(“)和逗号字符(,)
根据您的语言,可能有to_json方法可用 . 这将逃脱许多破坏CSV的事情 .
双引号对我没有用,它对我有用
\"
. 如果要将双引号作为示例,则可以设置\"\"
.您可以构建公式,例如:
将写入csv: