我正在尝试使用 argparse 接受 type=dict 的参数,但无论输入如何,它都会给出无效 dict 值的错误。
#!/usr/bin/env python
import argparse
MYDICT = {'key': 'value'}
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--mydict", action="store",
required=False, type=dict,
default=MYDICT)
args = parser.parse_args()
print args.mydict
这就是我尝试将字典传递给脚本时发生的情况
./argp.py -m "{'key1': 'value1'}"
usage: argp.py [-h] [-m MYDICT]
argp.py: error: argument -m/--mydict: invalid dict value: "{'key1': 'value1'}"
看着文件,我认为这是可能的。
http://docs.python.org/dev/library/argparse.html
“任何支持 in 运算符的对象都可以作为选择值传递,所以 dict 对象、set 对象、自定义容器等都支持。”</p>