Aceptando un diccionario como argumento con argparse y python [duplicar]

Esta pregunta ya tiene una respuesta aquí:

type = dict en argparse.add_argument () 7 respuestas

Estoy tratando de aceptar un argumento de tipo = dict con argparse pero sin importar la entrada, da un error de valor de dict inválido.

#!/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

Esto es lo que sucede cuando intento pasar un diccionario al script.

./argp.py -m "{'key1': 'value1'}"
usage: argp.py [-h] [-m MYDICT]
argp.py: error: argument -m/--mydict: invalid dict value: "{'key1': 'value1'}"

Mirando los documentos pensaría que esto sería posible.

http://docs.python.org/dev/library/argparse.html

"Cualquier objeto que sea compatible con el operador in puede pasarse como valor de elección, por lo que se admiten los objetos dict, los objetos establecidos, los contenedores personalizados, etc.".

Respuestas a la pregunta(1)

Su respuesta a la pregunta