【发布时间】:2019-10-09 07:23:55
【问题描述】:
我正在尝试在带有 <pre> 标签的 Django 模板中显示原始 json 数据。
我在几个地方都有这个工作,但由于某种原因,我的一个 json 样本无法正常工作。
为了获取 json,我使用了一个带有嵌套列表和字典的 python 字典。然后我通过json.dumps() 运行它来获取我的json。它看起来像这样:
data = {'parent_key': {'key1': 'value1', 'key2': 'value2', 'key3': ['obj1', 'obj2', 'obj3'], 'problem_key': ['problem_data1', 'problem_data2', 'problem_data3']}
json_data = json.dumps(data, indent=4)
使用我的其他字典,效果很好 - 预期输出是“漂亮”格式的 json - 即:
parent_key {
"key1": "value1",
"key2": "value2",
"key3": [
"obj1",
"obj2",
"obj3",
],
"problem_key": "[\n \"problem_data1\",\n \"problem_data2\",\n \"problem_data3\"\n ]
在 Django 模板中,我的代码如下所示:
{% for k, v in json_data.items %}
<pre>{{ k }} {{ v }}</pre>
{% endfor %}
您可以正确看到大多数数据格式,但最后一部分实际上打印换行符而不是格式化它们。
有什么想法吗?
编辑 - 渲染 下面 - search_result['display'] 是一个普通的 dic
search_result['display'] = json.dumps(search_result['display'], indent=4)
return render(request, 'iocs/ioc_check.html', {'search_result': search_result, 'pp_result': pp_data, 'url_haus': url_haus_,
'envcount': envcount})
编辑 - 实际输出
www.google.com.dns-report.com {
"Source": "CrowdStrike-Intel",
"Malicious_Confidence": "high",
"First_Seen": "2019-05-07 14:10:26",
"Last_Seen": "2019-05-15 20:31:17",
"TISAG_SEIR": "TISAG-SEIR",
"Malware": [
"FakeDead"
],
"Threat_Type": "Error",
"Kill_Chain": [
"C2"
],
"Tags": [
"domain",
[
"C2"
],
[
"FakeDead"
]
],
"Additional_Context": "[\n {\n \"indicator\": \"4e85c248eab9eedd3941640699cb1c4b\",\n \"type\": \"hash_md5\",\n \"created_date\": \"2019-05-07 14:10:26\",\n \"last_valid_date\": \"2019-05-07 14:10:26\"\n },\n {\n \"indicator\": \"96723797870a5531abec4e99fa84548837e9022e9f22074cf99973ab7df2a2e7\",\n \"type\": \"hash_sha256\",\n \"created_date\": \"2019-05-07 14:10:26\",\n \"last_valid_date\": \"2019-05-07 14:10:26\"\n },\n {\n \"indicator\": \"ff166de7d1b17a008e5bc3f3356fbf2dbe4906ec\",\n \"type\": \"hash_sha1\",\n \"created_date\": \"2019-05-07 14:10:26\",\n \"last_valid_date\": \"2019-05-07 14:10:26\"\n }\n]"
}
【问题讨论】:
-
这很正常,你应该使用
|safe模板过滤器。 -
@WillemVanOnsem 我是新手,你能链接到一些文档吗?
-
等一下,
json_data是一个字符串,对吗? -
我相信是的
-
你能在这里显示你如何调用
render(..)。我很确定通过json.dumps的结果 会出现问题,因为string 有no.items()。
标签: html json django python-3.x django-templates