如何使用 node-red 将 json 数据发送到烧瓶后端

How to send json data to flask backend using node-red

我正在尝试将 node-red 的一些输出作为 JSON 对象发送到使用 Flask 的后端。在后端,我的目标是将 JSON 数据转换为 .dot 格式并在本地保存文件。我刚开始使用 node-red,但不确定如何实现?后端必须在 python.

使用 Flask 的 python 代码:

from flask import Flask,request
app = Flask(__name__)

@app.route('/',methods=['POST','GET'])
def hello_world():
    print (request.is_json)
    content = request.get_json()
    print (content)
    return 'JSON posted'

我收到的红色节点控制台错误是

15 Apr 15:39:38 - [info] [debug:7bffeac1.688574]
{ _msgid: 'af3f4f9d.7072d', topic: '', payload: 'Invalid Date' }
15 Apr 15:45:13 - [info] [debug:7bffeac1.688574]
{ _msgid: 'e827f152.f9194', topic: '', payload: 'Invalid Date' }
15 Apr 15:48:55 - [info] [debug:7bffeac1.688574]
{ _msgid: '53e5ee2d.3b599', topic: '', payload: 'Invalid Date' }

python终端上的错误:

127.0.0.1 - - [15/Apr/2019 15:57:42] "GET / HTTP/1.1" 500 -

None False

让我们分解问题。

取流中的前 2 个节点。

Inject节点设置为时间戳模式进入JSON节点。

这输出一个字符串:

15/04/2019, 08:46:01  node: e5ffc8f6.f177a8
msg.payload : string[13]
"1555314361418"

这不是一个 JSON 对象(如果尝试这个而不是仅仅将输入数字转换为字符串,以前版本的 Node-RED 实际上会抛出错误)。如果输入中没有 one 的字符串表示形式,JSON 节点将不会创建 JSON 结构。

如果你想注入一个 JSON 对象到你的 HTTP-Request 节点你应该改变注入节点实际注入一个 JSON 对象并移除 JSON 节点.