首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NiFi Python脚本中解析JSON

在NiFi Python脚本中解析JSON
EN

Stack Overflow用户
提问于 2019-02-19 19:37:43
回答 1查看 1.7K关注 0票数 0

我基本上接收了一个流文件,并且我必须获取一个键的值。

代码语言:javascript
复制
import json
import java.io
from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback


class FlowFileParser(StreamCallback):
def __init__(self):
    pass
def process(self, inputStream, outputStream):
    text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
    obj = json.loads(text)
    newObj = obj['priority']
    outputStream.write(bytearray(newObj.encode('utf-8')))



flowFile = session.get()
if flowFile != None:
    #flowFile = session.putAttribute(flowFile, "priority", "5")
    priority = FlowFileParser()
    flowFile = session.putAttribute(flowFile, "filename", priority)
    session.transfer(flowFile, REL_SUCCESS)

但是我得到了一个下面的异常“putAttribute():第三个参数不能被强制输入到第23行”

输入的流文件可以是

代码语言:javascript
复制
{
"name": "martin",
"priority":"5"
}

我只希望文件名为5

EN

回答 1

Stack Overflow用户

发布于 2019-02-19 22:49:04

您正在尝试将对象传递到字符串参数中:

代码语言:javascript
复制
priority = FlowFileParser()
flowFile = session.putAttribute(flowFile, "filename", priority)

priority是对FlowFileParser()的对象引用,putAttribute的第三个参数需要是一个字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54765446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档