我有以下代码使用 Jinja 创建字符串
from jinja2 import Template
jT = Template('"text": {{text}}, "peripherals": {{peripherals}}')
params = {'text': 'some_text', 'peripherals': 'mouse'}
jT.render(**params)
Run Code Online (Sandbox Code Playgroud)
结果输出是:
'"text": some_text, "peripherals": mouse'
有没有办法将替换的值括在引号内,如下所示:
'"text": "hello", "peripherals": "mouse"'
除了编辑现有的 jinja 并使用 {{text|tojson}} 之外,Python 中是否有一种方法/函数可以自动将每个替换值括在引号中?
如果 Jinja 包没有内置工具来自动用字符串替换每个变量,那么我认为这将是正确的方法:
import re
from jinja2 import Template
template = '{"text": {{text}}, "peripherals": {{peripherals}}}'
# Use regular expressions to identify the variables
template = re.sub(r"({{)(\w*)(}})", r'"\1\2\3"', template)
jT = Template(template)
params = {'text': 'some_text', 'peripherals': 'mouse'}
print(jT.render(**params))
Run Code Online (Sandbox Code Playgroud)
它只是在模板中搜索变量并将它们封装在引号内。
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |