我是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"
}
}
答案 0 :(得分:1)
我在我的一个项目中做了同样的事情 - https://blogs.msdn.microsoft.com/translation/2016/01/27/new-microsoft-translator-customization-features-help-unleash-the-power-of-artificial-intelligence-for-everyone/。你可以参考一下。基本上,您必须自己创建一个解析器/过滤器 - 从django关注此upvote_system。
使用以下内容documentation创建名为tojson.py
的文件:
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&对它进行操作。
答案 1 :(得分:1)
您还可以尝试按照here所述定义自己的自定义标记或过滤器。并创建这样的东西:
=join(", ",filter(R$2:R,F$2:F=F25,D$2:D>7,R$2:R<>"",R$2:R<>R25))
result.html: 例如,如果要以表格行格式显示它,它将如下所示:
@register.inclusion_tag('result.html')
def display(json_obj):
json_data = json.loads(json_obj)
context = {}
for obj in json_data:
# Process data and save to context dictionary
...
# Return context
return {'context':context}
不确定它是否适合您的场景,但自定义标记将允许以不同格式显示json对象。