アクセスJSON要素とのpython ExecuteScriptプロセッサ
私はPythonとnifiに新しいですを使用してテキストファイルに書き込みます。
私の流れがGETFILEである - スクリプトで> ExecuteScript
、各JSONのために、私は特定の要素をaccesssとラインで、テキストファイルの行にそれを書きたいです。
Iは、以下の試み:
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 ModJSON(StreamCallback):
def __init__(self):
pass
def process(self, inputStream, outputStream):
text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
json_content = json.loads(text)
try:
body = json_content['id']['body']
body_encoded = body.encode('utf-8')
except (KeyError,TypeError,ValueError):
body_encoded = ''
text_file = open ('/tmp/test/testFile.txt', 'w')
text_file.write("%s"%body_encoded)
text_file.close()
outputStream.write(bytearray(json.dumps(body, indent=4).encode('utf-8')))
flowFile = session.get()
if (flowFile != None):
flowFile = session.write(flowFile, ModJSON())
flowFile = session.putAttribute(flowFile, "filename", flowFile.getAttribute('filename').split('.')[0]+'_translated.json')
session.transfer(flowFile, REL_SUCCESS)
しかしTESTFILE.TXTに、アクセス本体は書き込まれていません。
私はここで何が恋しいですか?
ありがとうございました。私は間違って貼り付けた。今私は投稿を編集しました。まだ何も書かれていません。 – vishnu
そのプロセッサから出力されているフローファイルはありますか?そうであれば、そのコンテンツに着信JSONの本文が含まれていますか? – mattyb
これは28のキューに入っていますが、getFileからexecuteScriptへのフローファイルはありません。私も画像を追加しました – vishnu