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.