[英]Access a list of dictionaries inside of a dictionary in Django templates
我试图访问我的 Django Html 模板中的一个列表,但我似乎无法通过索引抓取它以正常方式抓取列表的第一个元素。 在我看来,我有一个函数edamam
,它调用 API 端点并返回一个名为ingredients
的 JSON 字典。
这是函数:
@login_required
def edamam(request):
ingredients = {}
if 'ingr' in request.GET:
ingr = request.GET['ingr']
app_key = APP_KEY
app_id = APP_ID
url = f'https://api.edamam.com/api/food-database/v2/parser?ingr={ingr}&app_id={app_id}&app_key={app_key}'
response = requests.get(url)
ingredients = response.json()
print(f'Type: {type(ingredients)}')
return render(request, 'todo/edamam.html', {'ingredients': ingredients})
else:
return render(request, 'todo/edamam.html', {'error': 'That item does not exist in the database.'})
我打印了typeof(ingredients)
以确定我正在返回一个字典,并且打印输出确实在控制台中验证了这一点:
Type: <class 'dict'>
在我的edamam.html
视图中,我正在获取ingredients.parsed
edamam.html
(成分只是一个庞大的字典),因为我试图获取名为parsed
的列表以便从中获取元素。
<div class="col-md-5">
{% if ingredients %}
<p>{{ ingredients.parsed }}</p>
{% endif %} {% endblock %}
</div>
返回:
[{'food':
{'foodId': 'food_bnxr4n3b1ld7i6ace2hkqbwm89du', 'label': 'cheeseburger', 'nutrients': {'ENERC_KCAL': 263.0, 'PROCNT': 12.97, 'FAT': 11.79, 'CHOCDF': 27.81, 'FIBTG': 1.1}
, 'category': 'Generic foods', 'categoryLabel': 'food'}
}]
我的问题是,如何进入列表中的“食物”字典? 我尝试了ingredients.parsed.food
(没有任何回报)并且还尝试了ingredients.parsed['food']
并得到一个模板语法错误Could not parse the remainder: '['food']' from 'ingredients.parsed['food']'
和最后的ingredients.parsed[0]
.parsed ingredients.parsed[0]
因为它是parsed
列表中的第一个元素,但我得到另一个模板语法错误Could not parse the remainder: '[0]' from 'ingredients.parsed[0]'
。 所以最终我只是想获取food
字典中的nutrients
字典项目,这似乎是parsed
字典的第一个元素。 我只是不确定如何获得food
。
这应该有效,
ingredients.parsed.0
尝试一下!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.