我有一个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的变量。
答案 0 :(得分:1)
您似乎忘记了解析JSON,如下所示:data = json.loads(data)
。
如果没有,data
为str
,item
为长度为1的str
,item['observationid']
会提升TypeError
。