Node.js 如何在Python和Node.js之间传递JSON数据进行通信
JSON 可以缩写为JavaScript Object Notation。它是一种用于在编程语言中传输和存储数据的基于文本的文件。Python编程语言支持该格式,使用内置的 JSON 包处理。其文本以引号包裹的字符串格式给出,其中包含一个键和值,就像字典一样,放在 花括号{} 中。
要在Python中使用JSON,需要在Python脚本中导入JSON包。JSON包提供了几种方法,其中之一是dumps方法。此方法用于将Python元组对象转换为Java对象,以便在Python之间进行通信。
Node.js 是内置的JSON对象,用于将JSON数据解析为JavaScript。JSON中的parse函数用于将JSON对象转换为JavaScript字符串。
要在Node.js和Python之间传递JSON数据,我们使用HTTP请求和响应。
安装flask模块
首先,我们需要安装所需的模块,以建立Python和Node.js之间的通信。
pip install flask
输出
以下是安装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
安装request模块
现在我们需要安装request模块以在Python和Node.js服务器之间进行通信。
npm install request-promise
步骤
下面是在Python和Node.js之间进行JSON数据通信的步骤:
- 首先,在我们的工作环境中导入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 数据转换为 javascript。以下是代码示例。
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)
- 在这一步中,我们将创建JavaScript代码来接收从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');
});