我一直在尝试在节点和python之间进行通信,我想将对象数组发送到python,并在python中打印出来,但是我的代码无法正常工作。
content=[
{
"username": "admin",
"first_name": "",
"last_name": "",
"roles": "system_admin system_user",
"locale": "en",
"delete_at": 0,
"update_at": 1511335509393,
"create_at": 1511335500662,
"auth_service": "",
"email": "[email protected]",
"auth_data": "",
"position": "",
"nickname": "",
"id": "pbjds5wmsp8cxr993nmc6ozodh"
},
{
"username": "chatops",
"first_name": "",
"last_name": "",
"roles": "system_user",
"locale": "en",
"delete_at": 0,
"update_at": 1511335743479,
"create_at": 1511335743393,
"auth_service": "",
"email": "[email protected]",
"auth_data": "",
"position": "",
"nickname": "",
"id": "akxdddp5p7fjirxq7whhntq1nr"
}]
JavaScript代码:
const express=require('express')
const app=express()
let p = require('python-shell');
app.get('/send',(req,res)=>{
var options = {
args:
[
content
]
}
p.PythonShell.run('hello.py', options, function (err, results) {
console.log(results.toString())
});
})
app.listen('5000')
Python脚本:
import sys
import json
details=sys.argv[1]
print (details)
由于我们无法将对象传递到命令行,因此Thepython-shell
是.toString()
对内容对象的调用方法。做到了object Object
。
解决方案:将options
对象更改为:
var options = {
args:
[
JSON.stringify(content)
]
}
在python文件中:
parsed = json.loads(sys.argv[1])
print (json.dumps(parsed))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句