2017-11-07 2 views
-1

저는 컴퓨터 과학의 초보자입니다. 나는이json 데이터와 함께 파이썬 셸을 사용하고 싶지만 파이썬 모듈에 몇 가지 문제가 있습니다.

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)); 
} 
}) 

같은 파이썬 모듈을 실행하는 방법을 nodeJS 서버에서 파이썬

에서 제어 JSON 데이터, 알고 싶어하고이 test.py

import sys 
print(sys.argv[1]) 

되며, 결과는 다음과 같다

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

uid, lat, lng ar "uid", "lat", "lng"이 아니므로이 데이터를 파이썬에서 사용할 수는 없습니다 ...

파이썬에서 json 데이터를 어떻게 제어 할 수 있습니까 ??? json 데이터로 nodejs와 python을 교환하는 방법은 무엇입니까? 방금 입력 문자열을 인쇄하는 때문입니다

+0

server.js 당신의 JS 코드? – Goyo

답변

0

파이썬에서 "컨트롤"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] 
+0

고마워 :)) 그 코드가 완벽하게 작동합니다. – Chem

0
import json 
import sys 

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

0

당신은 파이썬 쉘 모듈의 run 방법을 사용 이는 JSON 데이터를 전달하는 것보다 인수가있는 스크립트를 시작하는 데 더 적합합니다.

파이썬 - 쉘은 파이썬 스크립트와의보다 쉬운 데이터 교환을 위해 send 메소드를 제공합니다. 여기

파이썬 쉘 tests에서 영감을, 사용의 예입니다 : 당신이`data`를 사용하지 않는

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)) 
+0

python-shell을 잘 사용하는 법을 가르쳐 주셔서 감사합니다. 감사 – Chem

관련 문제