Принятие словаря в качестве аргумента с argparse и python [duplicate]

На этот вопрос уже есть ответ здесь:

type = dict в argparse.add_argument () 7 ответов

Я пытаюсь принять аргумент типа = dict с помощью argparse, но независимо от того, что на входе он выдает ошибку неверного значения 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, пользовательские контейнеры и т. Д.»

Ответы на вопрос(1)

Ваш ответ на вопрос