Получение списка контекстных переменных из строки

В моем приложении Django есть следующая строка: "Hello, {{ name }}. I will arrive at {{ time }}". Моя цель - составить список переменных, которые используются в этой строке:

def my_func():
   # What should be done here ?

my_str = "Hello, {{ name }}. I will arrive at {{ time }}"
print(my_func(my_str))  # Desired output ["name", "time"]

Желаемым результатом здесь должно быть ["name", "time"]. В настоящее время я собираюсь реализовать это, вызывая regexp, но я чувствую, что должна быть какая-то встроенная функция для достижения этого. Есть какие-нибудь подсказки?

Вы можете использовать jinja2schema.infer для получения списка переменных, используемых в шаблоне:

import jinja2schema

def my_func(my_str):
   return list(jinja2schema.infer(my_str).keys())

my_str = "Hello, {{ name }}. I will arrive at {{ time }}"
variables = my_func(my_str)

variables должно выглядеть так:

['time', 'name']
Вернуться на верх