biegnę następujący kod:Format: KeyError przy użyciu nawiasów klamrowych w ciągach
asset = {}
asset['abc'] = 'def'
print type(asset)
print asset['abc']
query = '{"abc": "{abc}"}'.format(abc=asset['abc'])
print query
Które wyrzuca błąd 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 jest oczywiście coraz mylić przez zawijania {
. Jak mogę się upewnić, że format próbuje jedynie zastąpić (poprawny) wewnętrzny {abc}
.
czyli oczekiwany wynik to:
{"abc": "def"}
(.. Jestem świadomy mogę użyć modułu json
dla tego zadania, ale chcę uniknąć, że ja dużo raczej używać formatu)
że Twój blisko dwukrotnie klamra jest na niewłaściwym jeden. powinno być: ''{{" abc ":" {abc} "}}'' – tom
@tom, yep, poprawiono literówkę –