Как динамически форматировать именованные параметры в строки в Python? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть массив с параметрами - для каждого параметра у меня есть имя и значение.Есть ли способ динамически отформатировать его в строку с заполнителями?

массив:

[{'name': "a", 'value': "123"}, {'name': "b", 'value': "456"}]

строка: "blabla {a}"

требуемый результат: "blabla 123"

1 Ответ

0 голосов
/ 08 октября 2018

Поскольку в вашем строковом вводе уже используются действительные заполнители для форматирования строки , все, что вам нужно сделать, - это преобразовать существующую структуру данных в имена двумерного отображения в значения:

template_values = {d['name']: d['value'] for d in list_of_dictionaries}

, а затем применитьэтот словарь для строк шаблона с синтаксисом вызова **mapping для метода str.format() в строке шаблона:

result = template_string.format(**template_values)

Демонстрация:

>>> list_of_dictionaries = [{'name': "a", 'value': "123"}, {'name': "b", 'value': "456"}]
>>> template_string = "blabla {a}"
>>> template_values = {d['name']: d['value'] for d in list_of_dictionaries}
>>> template_values
{'a': '123', 'b': '456'}
>>> template_string.format(**template_values)
'blabla 123'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...