Umkehren von C-Format-Zeichenfolgen in Python (`%`)
Einführung und Einrichtung
Angenommen, ich habe eine 'Vorlage' * Zeichenfolge des Formulars,
>>> template = """My %(pet)s ate my %(object)s.
... This is a float: %(number)0.2f.
... %(integer)10d is an integer on a newline."""
it dieser Vorlage kann ich einen neuen String erzeugen mit,
>>> d = dict(pet='dog', object='homework', number=7.7375487, integer=743898,)
>>> out_string = template % d
>>> print(out_string)
My dog ate my homework.
This is a float: 7.74.
743898 is an integer on a newline.
Wie schön
Frag Ich möchte mich bewerbentemplate
zuout_string
um ein neues @ zu erzeugdict
. Etwas wie
>>> d_approx_copy = reverse_cstyle_template(out_string, template)
>>> print(d_approx_copy)
{pet='dog', object='homework', number=7.74, integer=743898,}
ibt es eine pythonische Möglichkeit, dies zu tun? Existiert bereits eine Implementierung? **
Anmerkunge*: Ich benutze keinVorlag weil, AFAIK, sie derzeit nicht unterstützen umkehren.
**: Mir ist das @ bekan Risiken verbunden mit dem Verlust der Präzision innumber
(von7.7375487
zu7.74
). Damit kann ich umgehen. Ich bin nur auf der Suche nach einem einfachen Weg, dies zu tun.