我是 Django 和 Python 的新手。
我在 HTML 使用 python 打印数据
{{ body.example }}
一些数据在纯文本中呈现正常,但有一个是这样打印的:
[OrderedDict([(u'value', u'5650.00'), (u'operation_number', 130990), (u'comments', u'TESTE'), (u'date', OrderedDict([(u'start', 20160519), (u'end', 20160519)]))])]
如何将这种类型的数据呈现为 json(因为 api 的结果是 json):
{
"value": "5650.00",
"operation_number": "130990",
"comments": "TESTE",
"date": {
"start": "20160519",
"end": "20160519"
}
}
请您参考如下方法:
我在我的一个项目中做了同样的事情 - upvote_system .你可以引用相同的。基本上,您必须自己创建一个解析器/过滤器 - 遵循此 documentation来自 Django 。
使用以下内容创建名为 tojson.py 的文件 (ref from project) :
from django import template
import json
register = template.Library()
@register.filter(is_safe=True)
def tojson(value):
return byteify(json.loads(json.dumps(value)))
def byteify(input):
if isinstance(input, dict):
return {byteify(key):byteify(value) for key,value in input.iteritems()}
elif isinstance(input, list):
return [byteify(element) for element in input]
elif isinstance(input, unicode):
return input.encode('utf-8')
else:
return input
像这样在 html 文件中加载解析器 - {% load tojson%} 然后尝试这样的事情:
your_result_as_json_object = {{your_result|tojson|safe}}
您现在可以将 your_result_as_json_object 用作 json/dict 并对其进行操作。
