Windows cmd python subprocess.call

Windows cmd python subprocess.call,python,windows,subprocess,Python,Windows,Subprocess,我有一个可以从windows命令提示符手动运行的命令,它可以按预期工作: > gridcoinresearchd sendmany "Default" {"""x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw""":1.00000000} 2 "Hello World" 因此,我根据一组变量构建subprocess.call(),其中一些变量是从其他变量派生的,如下所示: call_insert = [val for pair in zip(quotes, quotes,

我有一个可以从windows命令提示符手动运行的命令,它可以按预期工作:

> gridcoinresearchd sendmany "Default" {"""x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw""":1.00000000} 2 "Hello World"
因此,我根据一组变量构建subprocess.call(),其中一些变量是从其他变量派生的,如下所示:

call_insert = [val for pair in zip(quotes, quotes, quotes, address, quotes, quotes, quotes, colon, call_amount, comma) for val in pair]
call_insert = str("{"+(''.join(call_insert))+"}")
account_label = str('"'+(raw_input("Choose Account Label: "))+'"')
message = str('"'+(raw_input("Enter if you wish to send a message: "))+'"')
然后:

使用subprocess.call时,我从目标程序得到一个错误:

error: Error parsing JSON:{x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw:1.00000000}
如果我手动创建变量:

call_insert = str("""{"x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw":1.00000000}""")
然后我的subprocess.call()工作

因此,我认为这是我对windows命令提示符如何解释subprocess.call()字符串中所需的引号的困惑


我希望这是有意义的。

如果我们检查给定的错误消息

{x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw:1.00000000}
{"x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw":1.00000000}
并将其与所需的JSON输入进行比较

{"""x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw""":1.00000000}
我们可以看到第一条语句中缺少双引号,这可能是JSON未被解析的主要原因

因此,基本上我可能会怀疑
call\u insert
变量的格式并不像您预期的那样,即不包含双引号,等于:

str({x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw:1.00000000})

我建议您仔细查看示例的前两行以及上面的代码,以检查其输出。

通过反复试验确定,我发现字符串必须采用以下形式:

{"x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw":1.00000000}