当前位置: 首页 > 知识库问答 >
问题:

缺少前导引号的CSV数据是否被视为格式错误?

杨学真
2023-03-14

我正在使用OpenCSV读取CSV文件。查看文档,我没有看到有关如何处理格式错误数据的指南。

我有一个CSV文件。带有所有预期的功能:每个字段由逗号分隔,并且每个字段都由引号包围,以防其中一个值可能包含逗号。但是,每一行(除了标题)都缺少引号。这是一个例子

"Header 1","Header2"
value1","value2"
value1","value2"

由于引号的排列方式,CSV解析器最终跳过了每隔一行,这显然会导致问题。

我认为这是一个错误,因为第一列缺少引号,因为我知道数据应该是什么样子,但是就CSV规范而言,这可能被认为是有效的?如果是这样,我想我必须自己构建额外的检查以确保我没有丢失任何行,尽管它包含有效的CSV数据。

共有2个答案

皇甫琛
2023-03-14

对于您显示的数据:

"Header 1","Header2"
value1","value2"
value1","value2"

如果字段被认为没有被引用,并且字段从不包含分隔符,并且没有多行字段,那么我们可以认为数据的格式没有错误,这将给出以下值:

"Header 1"        "Header2"
value1"           "value2"
value1"           "value2"

当然,很明显,这些数据是用来引用字段的。在这种情况下,数据的格式肯定是错误的,可以用不同的解析器进行不同的解析(甚至可以作为多行字段)。

有效的选择是:

value1,value2              // no quotes at all
"value1","value2"          // all quoted
value1,"value2,more data"  // only quoted when there is a separator inside
秦景同
2023-03-14

根据CSV文件的rfc格式:

虽然CSV格式有各种规范和实现,但目前还没有正式的规范,允许对CSV文件进行各种解释。

简单地说,畸形?不,非正式的?没有。甚至这篇文章(链接在RFC中)也提到行可以与引号和无引号混合匹配。

 类似资料:
  • 问题内容: 我有一个csv文件,看起来像这样(实际文件有更多的列和行): 说文件的名称是 info.csv 如果我尝试使用导入 然后我得到以下错误: 如果我用 都与数据线和与数据被跳过。我不明白为什么要跳过该行。如果能适当地使用来导入上述文件中的前三行,我将不胜感激。 谢谢 问题答案: 如果您可以忽略文件末尾的16,请尝试使用 ( bool,optional )参数,如果设置为False,它将忽略

  • 1. 数据准备 请提前准备好需要导入的数据,数据格式参考下图1: 图 1 数据格式 2.数据导入过程 2.1添加数据 打开OpenQuant2014,点击Data->Import->CSV or Text Files 进入到数据导入界面,如图2:

  • 问题内容: 如何用Java格式化带有前导符号的数字? 负数正确显示为带前导,但显然正数不显示为。 如何在Java中做到这一点?我当前的货币格式字符串是(是,我需要格式化正/负货币值) 问题答案: 使用负子模式,如javadoc中DecimalFormat所述。 产生(在我的法语语言环境中,空格是分组分隔符,逗号是十进制分隔符):

  • 问题内容: 我终于让django安装工作了,但是我注意到缺少管理页面的典型外观,好像没有样式应用于页面的结构。我是否遇到某种设置问题或路径问题,从而无法找到样式表?它们存储在哪里? 问题答案: 听起来您的管理媒体没有正确投放。在您的中,有一个名为的变量,它指定Django应该在其中查找的URL。实际的媒体文件位于“ [Python站点包的路径] / django / contrib / admin

  • 我有一个非常简单的HTML表单页面(它是src/main/resources/public/web.HTML中Spring Boot web应用程序的一部分),用于将一个字符串从文本区发布到Spring Boot web应用程序版本1.5.2。 和SpringBoot类来处理POST请求:

  • 问题内容: 我有一个包含格式错误的JSON的字符串,该字符串在缺少键的情况下提供给我。JSON的结构超出了我的控制范围,因此我需要使用已有的东西。我已经找到了OP可以在JavaScript中解析格式错误的JSON的解决方案,但是其中一个值包含一个RegEx匹配的URL,并将其转换为另一个键(如值),导致JSON真正损坏。有任何想法吗? 我也看过jsonrepair,但是在那里没有太大的成功。 问题