【发布时间】:2019-06-21 01:43:12
【问题描述】:
我知道通过 CLI 将更复杂的数据结构(例如列表列表)传递给 python 脚本存在一些问题。
我想知道从节点代码运行 python 脚本是否有任何这些相同的问题。
基本上,假设我在节点应用程序中有以下代码:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, arg3]);
Question the above code is from
假设 arg1 和 arg2 是节点应用程序中的列表列表。并假设 arg3 是双精度数。
我的 script.py 文件中用于解析这些参数并将其接收到变量中的相应代码如下所示:
import sys
if __name__ == '__main__':
oc = sys.argv[1]
nc = sys.argv[2]
r = sys.argv[3]
这里的 oc 和 nc 会是 python 中的列表列表吗?或者是否需要做其他事情才能使其正常工作?
【问题讨论】:
-
不,它们将永远是
str对象。你可以自己检查一下。为什么不考虑像 JSON 这样的基于文本的序列化格式? -
如果 arg1 和 arg2 在 node 传入时是 JSON 对象,会起作用吗?
-
不,不会。 它们将永远是
str对象。同样,这很容易验证。但是 JSON 是一种数据传输格式。这就是它的用途。
标签: python node.js command-line-interface sys