我基本上接收了一个流文件,并且我必须获取一个键的值。
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行”
输入的流文件可以是
{
"name": "martin",
"priority":"5"
}我只希望文件名为5
发布于 2019-02-19 22:49:04
您正在尝试将对象传递到字符串参数中:
priority = FlowFileParser()
flowFile = session.putAttribute(flowFile, "filename", priority)priority是对FlowFileParser()的对象引用,putAttribute的第三个参数需要是一个字符串。
https://stackoverflow.com/questions/54765446
复制相似问题