【发布时间】:2017-01-24 20:16:43
【问题描述】:
我有一个可以从 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(['gridcoinresearchd', 'sendmany', account_label, call_insert, "2", message], shell=True)
当使用 subprocess.call 时,我从目标程序中得到一个错误:
error: Error parsing JSON:{x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw:1.00000000}
如果我手动创建变量:
call_insert = str("""{"x9Bqs6dTm17tsiEyZ9m4j5Yd8N2dpqw":1.00000000}""")
然后我的 subprocess.call() 工作。
所以我认为这是我对 windows 命令提示符如何解释我在 subprocess.call() 字符串中需要的引号的困惑。
我希望这是有道理的。
【问题讨论】:
标签: python windows subprocess