Mam problemy z używaniem format
z ciągiem, który wygląda jak słownik Python.Dlaczego Python interpretuje ten ciąg jako słownik podczas formatowania?
Chcę, aby wygenerować następujący ciąg: {"one":1}
Gdy próbuję to zrobić jak:
'{"one":{}}'.format(1)
interpreter rzuca KeyError:
>>> a = '{"one":{}}'.format(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '"one"'
Rozumiem, że problem prawdopodobnie obraca się wokół fakt, że ciąg zawiera {
, który można pomylić z 's {}
. Dlaczego tak się dzieje dokładnie i jak można go rozwiązać?
Znam formatowanie procentowe, ale chciałbym znaleźć rozwiązanie, które nie wymaga porzucenia format()
.
Pamiętaj niż procentach formatowanie jest szybsze: format = ,7228269569986878,% = ,03355357599866693 (wynikiem 'timeit.timeit 'na twoim przykładzie) –
@YaroslavSurzhikov Chyba że generujesz ogromne ilości ciągów, nie uważam, że to naprawdę ma znaczenie. – JAB
Jeśli chcesz utworzyć ciąg słownika, rozważ 'str ({" jeden ": 1})'. – marcelm