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

忽略带引号的行或获取DataWeave将读取无效的CSV

乐成济
2023-03-14

我试图使用Mule的DataWeave组件来读取一个无效的CSV文件,或者至少不符合RFC 4180。问题是有些值包含引号,但是字段没有被转义。举个例子,

col1,col2,col3
one,two "two" two,three
one",two,three

有没有一种简单的方法来稍微放松DataWeave使用的CSV解析器中的规则,以便将不以双引号开头的值视为非转义值?或者,我可以(使用DataWeave或其他转换)忽略所有带引号的文本行吗?它不到百分之一的行的一小部分,而且这些行碰巧与此集成无关,但我无法控制CSV的生成。

编辑:下面是一个示例:

.CSV

Column A,Column B,Column C,Column D
A,Something Weird",C,D
A,B,Something Else" Weird,D,
A,",S,o,m,e,t,h,i,n,g, ,N,o,r,m,a,l,",C,D

数据编织

%dw 1.0
%input payload application/csv
%output application/json
---
payload

输出

[
  {
    "Column A": "A",
    "Column B": ",C,D\r\nA,B,Something Else",
    "Column C": "D",
    "Column D": ""
  },
  {
    "Column A": "A",
    "Column B": ",S,o,m,e,t,h,i,n,g, ,N,o,r,m,a,l,",
    "Column C": "C",
    "Column D": "D"
  }
]

共有1个答案

郎祯
2023-03-14

或者,我可以(使用DataWeave或其他一些转换)忽略所有带有引号的文本行吗?

当然只需在DataWeave转换器之前从输入中删除所有包含双引号的行。

 类似资料:
  • 试图从其他人那里得到答案 假设我有一个简单的控制器,如下所示: 我希望处理忽略“取消”信号,这通常在客户端断开连接时出现。试图通过nginx的

  • 我不知道为什么,但dom4j不加载xmlns属性,如: xmlns=”http://webservices.example.com/servicesplatform/command/1.0.0“xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" 其他属性通常会加载,但会被忽略。我使用属性迭代器检查所有元素的所有属性。 下面是我如何读取此xml

  • 问题内容: 我有一些代码可以从文件中读取行,我想识别行何时开始或fisrt字符(非空白)为’ ‘并忽略它,因此在while语句中添加如下内容 我有类似的东西: 如何完成代码? 问题答案:

  • 我正在尝试使用头读取CSV文件。我正在使用以下代码: 是否有任何方法,我可以读取csv使用头,而跳过其他行。提前谢谢你。

  • 我试图从文本文件中读取引号中的大量单词,例如“DSRD”、“KJHT”、“BFXXX”、“OUYTP”,这样我就可以有像[DSRD、KJHT、BFXXX、OUYTP]这样的东西。 我尝试了下面这两个代码,但仍然返回带引号的行: 有没有一种方法可以让我只返回字符串列表,而不返回每个字符串中的引号? 任何帮助都将不胜感激。 谢谢

  • 问题内容: 在Python中,我刚刚阅读了一个文本文件中的一行,并且我想知道如何编写代码以忽略该行开头带有#的注释。 我认为应该是这样的: 但是我是Python的新手,我不知道语法 问题答案: 您可以使用startswith() 例如