Akceptowanie słownika jako argumentu za pomocą argparse i python [duplikat]

To pytanie ma już tutaj odpowiedź:

type = dict in argparse.add_argument () 7 odpowiedzi

Próbuję zaakceptować argument typu = dykt z argparse, ale bez względu na dane wejściowe daje błąd nieprawidłowej wartości dyktowania.

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

Tak się dzieje, gdy próbuję przekazać słownik do skryptu

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

Patrząc na dokumenty, sądzę, że byłoby to możliwe.

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

„Każdy obiekt obsługujący operator in może być przekazany jako wartość wyborów, więc wszystkie obiekty dyktowane, ustawione obiekty, niestandardowe kontenery itp. Są obsługiwane”.

questionAnswers(1)

yourAnswerToTheQuestion