Python vs Jython - MuleSoft

时间:2015-08-13 21:27:37

标签: python json

我有一个Python脚本,可以在PyCharm中运行时成功将JSON转换为CSV。 当我将该Python脚本移动到MuleSoft中的Python Transformer时,脚本失败并显示错误:

  

TypeError:unicode索引必须是第10行的整数(javax.script.ScriptException)。消息有效内容的类型为:String(org.mule.api.transformer.TransformerMessagingException)。消息有效内容的类型为:String

在这种情况下,Python和Jython有什么区别?我不明白!

这是Python:

import csv
import io

data = message.getInvocationProperty("my_JSON")

output = io.BytesIO()
writer = csv.writer(output)

for item in data:
    writer.writerow(([item['observationid'], item['fkey_observation'],  item['value'], item['participantid'], item['uom'], item['finishtime'], item['starttime'], item['observedproperty'], item['measuretime'], item['measurementid'], item['longitude'], item['identifier'], item['latitude']]))

result = output.getvalue()

"my_JSON"是一个包含JSON的变量。

1 个答案:

答案 0 :(得分:1)

您似乎忘记了解析JSON,如下所示:data = json.loads(data)

如果没有,datastritem为长度为1的stritem['observationid']会提升TypeError