强制用户在命令行上传递字典

时间:2016-07-07 10:11:15

标签: python argparse command-line-parsing

我想在命令行上传递字典。以下代码失败:

import json
import argparse

parser = argparse.ArgumentParser(description='Test Arg Parse')
parser.add_argument('-d', '--dict', type=dict, required=False)

variables = vars(parser.parse_args())
print json.dumps(variables)

当我运行程序时,它会抛出以下错误:

C:\KTLO\bin>python TestProg.py -d "{'a':'b'}"
usage: TestProg.py [-h] [-d DICT]
TestProg.py: error: argument -d/--dict: invalid dict value: "{'a':'b'}"

编辑1 :指定'json.loads'或'dict'不会改变输出,但仍然会抛出错误。

1 个答案:

答案 0 :(得分:0)

尝试

python TestProg.py -d '{"a":"b"}'

单引号无效json。