我试图接受带有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
Run Code Online (Sandbox Code Playgroud)
当我尝试将字典传递给脚本时会发生这种情况
./argp.py -m "{'key1': 'value1'}"
usage: argp.py [-h] [-m MYDICT]
argp.py: error: argument -m/--mydict: invalid dict value: "{'key1': 'value1'}"
Run Code Online (Sandbox Code Playgroud)
看看这些文件,我认为这是可能的.
http://docs.python.org/dev/library/argparse.html
"支持in运算符的任何对象都可以作为选项值传递,因此支持dict对象,设置对象,自定义容器等."
我有一个像下面这样的字符串列表.
>>> mylist = ["2013-09-07T11:23:43", "2013-09-05T15:14:12", "2013-10-13T22:06:22", "2013-11-16T23:01:34", "2013-12-22T23:11:54"]
Run Code Online (Sandbox Code Playgroud)
我想对它们进行排序,因为它们是日期.
>>> mylist.sort()
Run Code Online (Sandbox Code Playgroud)
这似乎按照我的意愿工作,但是这总是适用于这种格式的任何日期吗?
>>> mylist
['2013-09-05T15:14:12', '2013-09-07T11:23:43', '2013-10-13T22:06:22', '2013-11-16T23:01:34', '2013-12-22T23:11:54']
Run Code Online (Sandbox Code Playgroud)