Сторнирование строк формата C в стиле Python (`%`)

Введение и настройка

Предположим, у меня есть «шаблон» * строка вида,

>>> template = """My %(pet)s ate my %(object)s.
... This is a float: %(number)0.2f.
... %(integer)10d is an integer on a newline."""

С помощью этого шаблона я могу сгенерировать новую строку с

>>> 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.

Как мило!

Вопрос

Я хотел бы подать заявкуtemplate вout_string производить новыйdict, Что-то вроде,

>>> d_approx_copy = reverse_cstyle_template(out_string, template)
>>> print(d_approx_copy)
{pet='dog', object='homework', number=7.74, integer=743898,}

Есть ли Pythonic способ сделать это? Реализация уже существует? **

Заметки

*: Я не пользуюсьшаблон потому что, AFAIK, они в настоящее время не поддерживаютреверсивный.

**: я знаю ориски связано с потерей точности вnumber (от7.7375487 в7.74). Я могу справиться с этим. Я просто ищу простой способ сделать это.

Ответы на вопрос(1)

Ваш ответ на вопрос