Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想将pythonshell与json数据一起使用,但是python模块中存在一些问题_Python_Json_Node.js_Npm - Fatal编程技术网

我想将pythonshell与json数据一起使用,但是python模块中存在一些问题

我想将pythonshell与json数据一起使用,但是python模块中存在一些问题,python,json,node.js,npm,Python,Json,Node.js,Npm,我是计算机科学的初学者。 我想知道如何在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("Err

我是计算机科学的初学者。 我想知道如何在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));
}
})
{ uid: 'XZsGi9A93NNH4fRYYI5a2Wk4Hfm1',
lat: '37.591696899999995',
lng: '127.0120884' }
这是test.py

import sys
print(sys.argv[1])
结果是这样的

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));
}
})
{ uid: 'XZsGi9A93NNH4fRYYI5a2Wk4Hfm1',
lat: '37.591696899999995',
lng: '127.0120884' }
如您所见,uid、lat、lng不是“uid”、“lat”、“lng”,所以我不能使用这些数据在python中进行dict

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

import json
import sys

print(json.loads(sys.argv[1]))
这是因为您只是将输入字符串打印到python中的“control”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]

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

pythonshell提供了
send
方法,可以更方便地与python脚本进行数据交换

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

server.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);
});
test.py

import sys, json

for line in sys.stdin:
  print json.dumps(json.loads(line))

您没有在JS代码中使用
数据