Как заменить значения между двумя фигурными скобками в python?
Я хочу заменить значения в строках между двумя фигурными скобками.
e.g:
string = f"""
my name is {{name}} and I'm {{age}} years old
"""
Теперь я хочу заменить имя, фамилию и возраст на некоторые значения.
render_param = {
"name":"AHMED",
"age":20
}
поэтому конечный результат должен быть.
my name is AHMED and I'm 20 years old.
Вы можете работать с механизмом рендеринга шаблонов с помощью:
from django.template import Template, Context
template = Template("my name is {{ name }} and I'm {{ age }} years old")
render_param = {
'name':'AHMED',
'age':20
}
result = template.render(Context(render_param))
Если вы действительно хотите этого с помощью Python, регулярные выражения могут сделать это:
import re
render_param = {
"name":"AHMED",
"age":20
}
string = f"""
my name is {{name}} and I'm {{age}} years old
"""
print(re.sub("{(.*?)}",lambda m:str(render_param[m.group(1)]),string))
приводит к
my name is AHMED and I'm 20 years old.
Но, конечно, если у вас есть django, используйте его встроенную функцию, как показано в другом ответе.