使用exec在javascript中运行带有args的python脚本



我有纬度、经度和频率等输入。我想在JS文件上运行这个命令:

exec(`python test.py '{"latitude":${latitude},"longitude":${longitude},"frequency":${frequency}}'`, (error, stdout, stderr) => { .... })

但当我运行时,我会出现以下错误:

error: Command failed: python test.py '{"latitude":48.118097,"longitude":-1.636503,"frequency":2.4}'
Traceback (most recent call last):
File "test.py", line 16, in <module>
data=json.loads(sys.argv[1])
File "C:Users****AppDataLocalProgramsPythonPython38libjson__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:Users****AppDataLocalProgramsPythonPython38libjsondecoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:Users****AppDataLocalProgramsPythonPython38libjsondecoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我的python脚本从开始

import sys
import json
data=json.loads(sys.argv[1])

此外,如果我只是在没有args的情况下运行我的python脚本,并直接在python脚本中写入随机数据,它就可以工作了。所以我认为这是exec命令中写入的args的问题。

你能帮帮我吗?

也许加双引号?

python test.py '"{"latitude":48.118097,"longitude":-1.636503,"frequency":2.4}"'

最新更新