我想用pythonshell处理json数据,但是pythonmodu中有一些问题

2024-09-30 08:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是计算机科学的初学者。 我想知道如何在python中控制JSON数据

在 在nodeJS服务器中,执行如下python模块

const data = {"uid":"XZsGi9A93NNH4fRYYI5a2Wk4Hfm1","lat":"37.5916983","lng":"127.01206040000001"};
pythonShell.run('/python/test.py',options,(err,results)=>{
if(err){
    res.send("Error : ", err);
}else{
    console.log(results);
    res.send(JSON.stringify(results));
}
})

这是测试.py在

^{pr2}$

结果是这样的

{ uid: 'XZsGi9A93NNH4fRYYI5a2Wk4Hfm1',
lat: '37.591696899999995',
lng: '127.0120884' }

正如你看到的uid,lat,lng不是“uid”,“lat”,“lng”,所以我不能用这些数据在python中进行dict。。。在

如何在python中控制json数据??? 或者如何用json数据通信nodejs和python?在


Tags: 数据pysendjsonuidnodejsresresults
3条回答

您使用的是pythonshell模块的run方法,它更适合于启动带有参数的脚本,而不是传递JSON数据。在

pythonshell提供了send方法,以便于与python脚本进行数据交换。在

以下是一个使用示例,其灵感来自python shell tests

在服务器.js在

const PythonShell = require('python-shell');
const pyshell = new PythonShell('/python/test.py');

const data = {"uid":"XZsGi9A93NNH4fRYYI5a2Wk4Hfm1","lat":"37.5916983","lng":"127.01206040000001"};

pyshell.send(JSON.stringify(data), { mode: 'json' });

pyshell.on('message', results => {
  console.log(results);
  res.send(results);
});

pyshell.end(err => {
  if (err) res.send("Error : ", err);
});

在测试.py在

^{pr2}$
import json
import sys

print(json.loads(sys.argv[1]))

这是因为您只是在打印输入字符串

要在python中“控制”json:

import json

#data is your json in a dict
data = {...}

#To print, store etc CONVERT json into String
json.dumps(data)

#To read json in string, your call JSON.stringify(results) converts json to string
data = json.loads(input) #input = sys.argv[1]

相关问题 更多 >

    热门问题