sto correndo il seguente codice:Formato: KeyError quando si utilizza parentesi graffe nelle stringhe
asset = {}
asset['abc'] = 'def'
print type(asset)
print asset['abc']
query = '{"abc": "{abc}"}'.format(abc=asset['abc'])
print query
che getta un errore di KeyError
:
[[email protected]] : ~/Documents/vision/inputs/perma_sniff $ python ~/test.py
<type 'dict'>
def
Traceback (most recent call last):
File "/home/user/test.py", line 5, in <module>
query = '\{"abc": "{abc}"\}'.format(abc=asset['abc'])
KeyError: '"abc"'
Format è ovviamente sempre confuso dal avvolgendo {
. Come posso assicurarmi che il formato cerchi solo di sostituire il (corretto) interno {abc}
.
cioè, risultato atteso è:
{"abc": "def"}
(.. Mi rendo conto che potrei utilizzare il modulo json
per questo compito, ma voglio evitare che io preferirei di gran lunga utilizzare il formato)
pensate che la vostra doppia stretta brace è quella sbagliata. dovrebbe essere: ''{{" abc ":" {abc} "}}'' – tom
@tom, yep, typo fixed –