我正在尝试打印API调用的结果,该调用返回了相对深入嵌套的JSON结果。我正在用Python 2.7和Django 1.11做这个项目。
我有以下view.py函数:
def nlu_analysis(request):
if request.method == 'POST':
text2send = request.POST.get('text2send')
natural_language_understanding = NaturalLanguageUnderstandingV1(
version='2017-02-27',
username='####',
password='####')
response = natural_language_understanding.analyze(
text=text2send,
features=[features.Entities(), ..., features.SemanticRoles()])
return render(request, 'watson_nlu/analysis.html', {'data': response})
当我在.html文件中使用以下模板代码时:
{% for k in data.keywords %}
<p>Text - {{ k.text }}</p>
<p>Relevance - {{ k.relevance }}</p>
{% endfor %}
解析并显示JSON,其嵌套级别如下:
'keywords': [{
'relevance': 0.946673,
'text': 'eyes'
}]
一切都很棒,它显示出眼睛&#39;和预期的0.946673。
我无法找出适当的语法来获取更深层次的“愤怒”,“快乐”等结果,例如:
{
'emotion': {
'document': {
'emotion': {
'anger': 0.195192,
'joy': 0.082313,
'sadness': 0.644314,
'fear': 0.207166,
'disgust': 0.103676
}
}
}
实现这一目标的最有效方法是什么?
绝对不是:
<p>Anger - {{ data['emotion.document.template.anger'] }}</p>
为你的帮助推进新手的感激和好的juju。
答案 0 :(得分:1)
您可以使用.
访问dict的词典,因此问题的解决方案是data.emotion.document.emotion.anger