span8
span4
我认为带有CSV模块的PythonCaller非常适合这种情况,它已经具备了处理许多边缘情况(如引用、换行等)的所有必要机制。
尝试:
从fmeobjects导入*导入csv类ParseCSVString(object): def input(self, feature): csv_string = [feature.getAttribute('CSV_LINE')或"]csv_parser = csv.reader(csv_string) for record in csv_parser: f = feature.clone() for n, value in enumerate(record): f。setAttribute('value{%s}' % n, value) self.pyoutput(f)
在PythonCaller中暴露属性列表“value{}”。
您可以简单地读取这个字段。然后您将获得一个包含csv的属性。
用换行(texteditor->特殊字符->换行)分隔。爆炸的列表。
连接一个datainspector转换器。
(如果fieldname行有不同的限定符,则通过选择_element_index = 0来分隔它,以便分别处理。否则,没有必要。)
通过从Data inspector中的feature information窗口复制fieldnames列表,将它导出为txt列表。(选择列表{}属性名和属性值与“复制文本缩进”,并保存txt文件。
如果没有包含逗号的属性值,则使用逗号分隔,否则首先使用stringreplacer替换为反斜杠(同样通过texteditor或从另一个文件复制反斜杠)。然后使用stringreplacer来删除限定符,使用regexp可以通过regexp= ^'|'$获得第一个和最后一个(以便不删除不符合条件的')
现在你可以通过反斜杠(或任何你选择的)分割。
使用重命名器使用import函数重命名_list{}属性。(我对最近的fme版本非常满意)
©2019安全亚搏在线软件公司法律