span8
span4
在PythonCreator,我创建了一个dictionnary。我想用它在以下变压器,PythonCaller作为属性。
所以,在造物主,我完成与“回报myDict”。在来电,我称之为属性myDict。
但是,当我运行该项目,在日志中,它告诉我,:
类型错误:“NoneType”对象不是可迭代
你有什么建议吗?
谢谢
试试这个:
进口JSON进口fmeobjects类FeatureCreator(对象)的:def __init __(个体):通过DEF接近(个体):特征= fmeobjects.FMEFeature()myDict = { '公社': '东京'} feature.setAttribute( 'my_json',JSON.dumps(myDict))self.pyoutput(特征)
通知self.pyoutput(功能)怎么总是排在最后。
另请注意,您必须导入json模块。
如果您在此PythonCreator后附加一个记录器,你应该得到:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Feature Type: `Logger_LOGGED' Attribute(string): `fme_feature_type' has value `PythonCreator' Attribute(string): `my_json' has value `{"Commune": "Tokyo"}' Geometry Type: Unknown (0) ===========================================================================
希望这可以帮助。
谢谢。但是,我在我的日志中的错误,指出该dictionnary不是字符串。
我检查印刷它的类型。在造物主,它是一个字符串。但是,在来电,它成为一个无类型。
全球myDict
类FeatureCreator(对象):
高清__init __(个体经营):
通过
高清接近(个体经营):
特征= fmeobjects.FMEFeature()
self.pyoutput(功能)
myDict = { '公社': '东京'}
feature.setAttribute( 'my_json',json.dumps(myDict))
打印json.dumps(myDict)
打印类型(json.dumps(myDict))
那是因为我在做它在一个类中的方法?
嗨@slerendu他发现了两个问题。
全局变量应该在引用该变量的方法定义中声明。在这种情况下,必须在“close”方法中声明“myDict”全局变量。
您可以定义你的字典作为全局变量:
全球my_dict my_dict = {1: 'A',2: 'B',3: 'C'}
然后在不同的Python变压器就可以像这样访问:
全球my_dict MY_VALUE = my_dict [1]
或者你可以把字典的JSON字符串从一个变压器到另一个使用的功能属性。
要一本字典“my_dict”转换为JSON并将其存储在属性“my_json”:
feature.setAttribute( 'my_json',json.dumps(my_dict))
那么以后你可以读取属性“my_json”,并将其转换回词典:
my_dict = json.loads(feature.getAttribute('my_json))
©2019安全亚搏在线软件公司|法律