Django 模板无法访问重复引号中的 JSON Key: " 'Key' ": " Value "

Posted

技术标签:

【中文标题】Django 模板无法访问重复引号中的 JSON Key: " \'Key\' ": " Value "【英文标题】:Django template cannot access JSON Key in duplicate quotations: " 'Key' ": " Value "Django 模板无法访问重复引号中的 JSON Key: " 'Key' ": " Value " 【发布时间】:2017-06-15 15:19:21 【问题描述】:

我的 Django 应用正在与 API 交互并在模板中显示结果。

API 结果有一些普通的键值对和一些自定义字段,它们的键在双引号和单引号中。

key 在结果 JSON 中被格式化为“'custom_field_123'”:

'cost_price': '0.00', "'asset_field_1234'": None, "'asset_field_5768'": None

我知道这不是正确的 JSON 格式,但这是我必须处理的。

在我可以使用的 Django 模板中:

<p>tower.name</p>

用于常规格式键。 但是模板语言无法识别:

<p>tower.'custom_field_123'</p>

或者

<p>tower.('custom_field_123')</p>

有没有办法访问这些值,或者我必须重命名引号中的键才能在模板中访问它们。

【问题讨论】:

你应该修复任何生成 JSON 的东西。 【参考方案1】:

来自the template reference docs:

变量名称必须由任意字母 (A-Z)、任意数字 (0-9)、下划线(但不得以下划线开头)或点组成。

所以引号是不允许的,模板语言无法直接访问这些属性。

您可以编写自己的模板标签以通过变量键(如this question)查找字典项目,但我建议您修复您的数据。

【讨论】:

是的,我怀疑这就是答案,不幸的是数据来自另一个服务,谢谢。

以上是关于Django 模板无法访问重复引号中的 JSON Key: " 'Key' ": " Value "的主要内容,如果未能解决你的问题,请参考以下文章

Django-模板中的Json数据

无法访问 Django 模板中的属性

删除Django模板中的引号

从 django 模板访问 JSON 属性

模板中的 Django 外键

无法获取 Django 模板以打印格式化的 JSON