Python 编写JSON字符串,允许以双引号将参数传递给subprocess.call
代码段:Python 编写JSON字符串,允许以双引号将参数传递给subprocess.call,python,json,subprocess,Python,Json,Subprocess,代码段: json_string='{"job1" : ["echo","\\"hello world\\""]}' parsed_json = json.loads(json_string) subprocess.call([parsed_json["job1"][0],parsed_json["job1"][1]]) 输出: “你好,世界” 当我打印parsed_json[“job1”][0]和parsed_json[“job1”][1]时,我分别得到echo和“hello world”作
json_string='{"job1" : ["echo","\\"hello world\\""]}'
parsed_json = json.loads(json_string)
subprocess.call([parsed_json["job1"][0],parsed_json["job1"][1]])
输出:
“你好,世界”
当我打印parsed_json[“job1”][0]
和parsed_json[“job1”][1]
时,我分别得到echo
和“hello world”
作为输出
但是当我直接在终端中输入这个命令时,输出是不同的
终端中的命令:
echo "hello world"
或
上述两个命令的输出为:
hello world
如何重写JSON字符串,以便使用subprocess.call函数运行第一个终端命令(
echo“hello world”
)?似乎它应该包含[“echo”,“hello world”]
。否则,您希望[“echo”、“\“hello world\”和“second string\”][/code>做什么呢?我编写了json\u字符串。[“echo”,“hello world”]工作正常,相当于命令echo hello world
。我只是想知道如何为命令echo“hello world”
编写等效的JSON字符串。我不明白你问题的第二部分。[“echo”,“hello world\”]不允许我正确编译程序。我听说其他人在json.loads函数中也遇到过类似的情况。[“echo”,“hello world”]
相当于echo“hello world”“
。shell解释引号。使用带有参数列表的subprocess.call
时,不涉及shell。是什么产生了json\u字符串
?似乎它应该包含[“echo”,“hello world”]
。否则,您希望[“echo”、“\“hello world\”和“second string\”][/code>做什么呢?我编写了json\u字符串。[“echo”,“hello world”]工作正常,相当于命令echo hello world
。我只是想知道如何为命令echo“hello world”
编写等效的JSON字符串。我不明白你问题的第二部分。[“echo”,“hello world\”]不允许我正确编译程序。我听说其他人在json.loads函数中也遇到过类似的情况。[“echo”,“hello world”]
相当于echo“hello world”“
。shell解释引号。使用带有参数列表的subprocess.call
时,不涉及shell。
echo hello world