【问题标题】:handling .CSV when one of it's value may include a comma in the string处理 .CSV 当其中一个值可能在字符串中包含逗号时
【发布时间】:2012-08-22 23:06:09
【问题描述】:

我有一个需要转换为冷融合查询的 .csv。我使用了 cflib.org CSVtoQuery 方法,效果很好……但是……

如果 csv 中的“单元格”在字符串中包含逗号(例如列表),则该记录的查询行会变得混乱,因为它将字符串中的逗号视为新值。

我无法控制数据的输入方式,因此我无法将其写入或传递到引号等内。

有谁知道是否有办法处理值中可能包含逗号的 .csv(转换为查询或其他可行的结构)?

【问题讨论】:

  • 谢谢亨利.. 已经尝试过了,但没有成功。不幸的是,我没有得到 isQuery(mycsv) 返回一个肯定的结果,并且尝试像查询失败一样循环遍历 csv。再次感谢亨利..
  • “我不能让它写入或传递到引号等内。” - 你的意思是该文件不是有效的 CSV 文件?
  • Peter 所说的...如果您的 CSV 包含不在字符串分隔符内的逗号,那么它完全无效,无法安全处理。
  • 从第三方工具导出。是的,看起来像一个无效的 csv,但它就是它,我必须使用它。谢谢大家。

标签: csv coldfusion


【解决方案1】:

不,没有。制作 CSV 的人没有正确制作。没有 CSV 解析器可以区分逗号分隔和逗号之间的区别,如果没有办法区分的话。

制作文件的人应该选择不同的分隔符。

【讨论】:

  • 是的。你必须有一些东西可以让你区分一个领域。实际上有一个 CSV 格式的 RFC - tools.ietf.org/html/rfc4180 - 上面写着“6. 包含换行符 (CRLF)、双引号和逗号的字段应该用双引号括起来。”
  • 是的。虽然他后来说“如果我在excel中打开csv,它会正确放置值”。这强烈表明这些值用引号引起来。否则,Excel 也会遇到同样的问题。
  • 他还在他的原始声明中说“我无法控制数据的输入方式,因此我无法将其写入或传递到引号等中。”我是根据这个来回答的。
  • 谢谢杰森。我给了这个很好的打击。但不是不应该。
  • @JasonDean - 当然,这也是我会回答的 :) 他后来的 cmets 只是提出了一些问题,因为 Excel 的行为应该与任何其他解析器相同。所以也许数据中还有一些没有提到的东西。但事实证明这可能是侥幸,你最初的答案是正确的。
猜你喜欢
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 2022-08-18
  • 2011-10-13
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多