使用带有 Python 的 ExecuteScript 将 JSON 写入文件

Use ExecuteScript with Python to write JSON to file

我正在尝试访问 GitHub API 并将内容写入 FlowFile。我可以在 Python 脚本中创建 FlowFile 或使用 GenerateFlowFile 并将其发送到脚本中,我并不挑剔。到目前为止,我创建 JSON 的代码如下(使用 urllib 以符合 Jython):

import urllib.request
import json

headers = {
    'Content-Type': 'application/json {}'.format('cat'),
    'Authorization': 'token TOKEN_TEXT'
}

page = 1
response_text = []

while page > 0:
    req = urllib.request.Request(url="GITHUB_API_URL".format(page),\
                                 data=None, headers=headers)
    
    with urllib.request.urlopen(req) as resp:
        data = json.loads(resp.read().decode("utf-8"))

    
        if len(data) == 0:
            break
        else:
            response_text.extend(data)
            page += 1

我已经确认我得到了所需的 JSON,我真的只需要将 response_text 写入 FlowFile 以传递到我流程中的下一个处理器。我试过研究,但我似乎找不到任何关于 ExecuteScript 处理器的硬文档(如果你知道我在哪里可以找到它,我也会很感激)。

我写了一系列名为 ExecuteScript Cookbook (part 1, part 2 and part 3) 的文章,其中包含(在其他受支持的语言中)常见 NiFi API 调用的 Jython 示例。看一看处理 FlowFile I/O 的第 2 部分。我应该提一下,NiFi 中使用的 Jython 脚本引擎是基于 Python 2 而不是 3.