如何在Windows上将JSON字符串传递给Python程序的命令行?

时间:2018-05-03 16:10:58

标签: python json windows python-3.x command-line-arguments

我有一个从另一个进程调用的脚本,它接收一个json字符串的输入。

import sys
import json

script_name, json_in = sys.argv

我的json看起来像是:

'{"key1":"val1", "key2":[val2, val3], "key3":"val4"}'

当我打印python收到的内容并存储在json_in中时,它看起来像:

{key1:val1, key2:[val2, val3], key:val4}
当我到达json_in时,

单步执行pdb,它的值是:

"'{key:val1, key2:[val2, vale3], key:val4}'"

我在Ubuntu上没有遇到这个问题,但是当我在Windows上使用相同的脚本时它不再有效。

如果您复制并粘贴传递给argv的完全相同的输入,则该脚本可以正常工作。所以我能得出的唯一结论是,argv以某种方式剥离双引号?我没有找到任何可能描述这种情况的文档(尤其是当它适用于Ubuntu时)。

有谁知道它被剥夺的原因?

python函数由javascript函数调用,但即使我只是使用

从终端调用python scipt
>>> python file_name.py '{"key1":"val1", "key2":[val2, val3], "key3":"val4"}'

我得到了同样的错误。如果将json_in变量设置为相同的值,或者在Ubuntu终端中以完全相同的方式调用它,则没有问题。

0 个答案:

没有答案