可以使用subprocess.Popen函数将字典作为参数发送吗?

时间:2019-10-18 21:01:37

标签: python-3.x

我要发送bash命令到我的计算机,因为flask使用subprocess.Popen函数...要执行的文件是python文件,但它需要三个值作为参数,最后一个值是字典,但是subprocess.Popen只接受str ..有没有办法发送这本词典?

myDict = {1:"a",2:"b"}
value1 = "data"
value2 = "data1"

bashCommand = "python script.py " + value1 +" "+value2+" "+myDict
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()

bashCommand =“ python script.py” + value1 +“” + value2 +“” + myDict TypeError:必须为str,而不是dict

1 个答案:

答案 0 :(得分:0)

将字典{1:"a",2:"b"}作为字符串传递到script.py

Script.py最有可能将字符串解析为字典。例如,使用json模块:

Python 3.5.2 (default, Jul 10 2019, 11:58:48) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>>  json.loads('{"1":"a","2":"b"}')
{'2': 'b', '1': 'a'}
>>>