Ben argidse ile type = dict argümanını kabul etmeye çalışıyorum ama girdikten sonra geçersiz bir dict değeri hatası veriyor.Argparse ve python ile argüman olarak bir sözlüğü kabul etme
#!/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
Bu deneyin ve bunun mümkün olacağını düşünürdüm belgeler baktığımızda komut
./argp.py -m "{'key1': 'value1'}"
usage: argp.py [-h] [-m MYDICT]
argp.py: error: argument -m/--mydict: invalid dict value: "{'key1': 'value1'}"
için bir sözlük geçirdiğinizde neler olduğunu.
http://docs.python.org/dev/library/argparse.html
“vb böylece dict nesneleri kümesi nesneleri, özel kaplar, operatör içinde seçimler değeri olarak geçirilebilir destekleyen herhangi bir nesne tüm desteklenmektedir.”
Eğer alıntı hattı :) gerekiyorsa tip ve özel dönüşümleri gerçekleştirmek için bağımsız değişken olarak tek bir parametre alan bir fonksiyon geçmesi anlamına gelir argümanların hangi değerlerine izin verildiğini tanımlayan "seçimler" anahtar kelime argümanı. Seçime bir kural atmak, anahtarların bir listesini geçmeye etkili bir şekilde denktir. Böylece, "{'a': 2, 'b': 3}" ifadesi, "--dict" işaretine izin verilen argümanları "a" veya "b" ye sınırlar. –