如何在 Python 和 Node.js 之间通信 JSON 数据?
JSON 可以缩写为 JavaScript Object Notation。它是一个基于文本的文件,用于在编程语言中传输和存储数据。它由使用内置包即 JSON 的 python 编程语言支持,其文本以带引号的字符串格式给出,其中在大括号 {} 中包含与字典相同的键和值。
为了在 python 中使用 JSON,我们必须在 python 脚本中导入 JSON 包。JSON 包提供了几种方法,其中一种方法是转储。这用于将 python 元组对象转换为 Java 对象,以执行 python 之间的通信。
Node.js 是内置的 JSON 对象,用于将 JSON 数据解析为 JavaScript。JSON 中的函数解析用于将 JSON 对象串成 JavaScript。
为了在 Node.js 和 python 之间传输 JSON 数据,我们使用 http 请求和响应。
安装烧瓶模块
首先,我们必须安装所需的模块来建立 python 和 Node 之间的通信.js
pip install flask
输出
以下是安装烧瓶模块的输出。
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting flask Downloading Flask-2.2.3-py3-none-any.whl (101 kB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing collected packages: flask Successfully installed flask-2.2.3
安装请求模块
现在我们必须安装请求模块来在 python 和 node js 服务器之间进行通信。
npm install request-promise
步骤
接下来,我们必须按照步骤在python和Node之间传达JSON数据.js如下所示。
-
首先,我们必须在工作环境中导入 python 中可用的 JSON 模块
import json
-
现在我们将使用 python 创建字典格式的数据,然后使用 json 模块的 dumps() 函数将 python 数据转换为 json 数据,以下是代码
import json data = {"Language":["Python","Java","C"], "Year":[2000,2004,2009]} json_data = json.dumps(data) print(json_data) print(type(json_data))
当我们运行上面的代码时,将生成以下输出 -
{"Language": ["Python", "Java", "C"], "Year": [2000, 2004, 2009]} <class 'str'="">
-
在此步骤中,我们将使用 Node.js 中可用的 parse() 函数将 json 数据转换为 java 脚本。以下是代码。
const json_string = '{"name": "John", "age": 30}'; const data = JSON.parse(json_string);
-
现在我们必须在python模块和node js之间建立连接
import requests import json data = {"Language":["Python","Java","C"], "Year":[2000,2004,2009]} headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} response = requests.post('http://localhost:3000', data=json.dumps(data), headers=headers)
-
在此步骤中,我们将创建 java 脚本来接收从 python 到 Node js 的数据。
const http = require('http'); const server = http.createServer((req, res) => { let data = ''; req.on('data', chunk => { data += chunk; }); req.on('end', () => { const json_data = JSON.parse(data); console.log(json_data); }); res.end('OK'); }); server.listen(3000, () => { console.log('Server listening on port 3000'); });