ofk*_*fko 12 python django json jinja2
我使用带有webapp2的Jinja2.
正如他们的文档所说,Jinja2将所有"上下文"数据编码为unicode.当我尝试将json字符串插入模板时,这证明是有问题的:
jsonData = json.loads(get_the_file('catsJson.txt'))
Run Code Online (Sandbox Code Playgroud)
我将jsonData传递给模板,我能够成功循环它但是当我将一个json元素插入HTML时,它看起来像这样:
<option value='[u'dogs', u'cats']'>
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样(因为它在原始的json字符串中):
<option value='["dogs", "cats"]'>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Mic*_*kel 21
您必须通过safe过滤器过滤值,告诉jinja2它不应该将任何其他过滤器应用于输出.在jinja2语法中,这将是:
{{ jsonData | safe }}
Run Code Online (Sandbox Code Playgroud)
请注意,由于您正在调用json.loads实际上不再具有json数据,因此您有一个python列表对象.因此,当它被序列化时,它与调用unicode(['dogs', 'cats'])哪个将为您提供u前缀.您可能不想实际解析json数据,或者您需要手动将列表转换为字符串,而不是让jinja2为您执行此操作.
| 归档时间: |
|
| 查看次数: |
15032 次 |
| 最近记录: |