2010-05-02 15 views
43

aşağıdaki kod KeyError istisna yükseltir yükseltir?str.format() KeyError

Python 3.1 kullanıyorum.

+1

(yönelimler belirlenmiştir almak için 'enumerate' kullanın): Onları iki katına, yani hiç kodunu değiştirmek gerekir. – SwiftsNamesake

cevap

82

Sorun, biçimlendirme için bir anahtar belirtmeyen, orada sahip olduğunuz {ve} karakterlerdir. Muhtemelen bir liste anlayışı ile aynı görevi başarmak olabilir

addr_list_formatted.append(""" 
    "{0}" 
    {{ 
    "gamedir" "str" 
    "address" "{1}" 
    }} 
""".format(addr_list_idx, addr)) 
+4

Birisi JSON'u Python'da kullanmak isterse? @fijiaaron – fijiaaron

+1

çift '{' cevaptır sadece burada biçimlendirmek için hiçbir anahtar olduğunu 'format' yöntemi anlatmak için (bu yüzden formated dizede kaçmış olan ve bir JSON yapı için bir sorun olmaması gerektiğini yön). Alternatif olarak, "join" yöntemi gibi dizeleri işlemek için başka etkili yollar vardır: "" ".join (['{"', var_name, '":', value, '}'])' – mgc

İlgili konular