如何从 Talend 中的 CSV 中提取键值

How to extract key values from CSV in Talend

我有如下的 csv 数据文件:

 `Column1`                  `Column2`                    `Column3`           
    
{'name':'Steve Jobs'}   ,    {'first_name':'Steve'}  , {'last_name':'Jobs'} 
    
{'name':'Mark Zuckerberg'} ,  {'first_name':'Mark'}  ,  {'last_name':'Zuckerberg'}

{'name':'Steve Jobs'}   ,    {'first_name':'Steve'}  , {'last_name':'Jobs'} 

我希望使用 Talend 工具获得如下数据:

`name`          `first_name`    `last_name`

Steve Jobs       Steve          Jobs

Mark Zuckerberg  Mark          Zuckerberg

Steve Jobs       Steve         Jobs

您可以使用 substring()indexOf() 函数来实现。

解释:

  1. 由于键和值由 : 分隔,我们可以在 : 之后和 }
  2. 之前添加子字符串
  3. 为了得到:}的位置,我们可以使用indexOf函数

下面是三列在tMap中使用的条件,

row1.Column1.substring(row1.Column1.indexOf(":")+2, row1.Column1.indexOf("}")-1) 
row1.Column2.substring(row1.Column2.indexOf(":")+2, row1.Column2.indexOf("}")-1) 
row1.Column3.substring(row1.Column3.indexOf(":")+2, row1.Column3.indexOf("}")-1) 

结果,