python - 如何使用数据中的键值检查条件并显示所有嵌套值(如果存在)
问题描述
我有示例 mongo 文档数据(供参考):
从观点来看:
data=wordscollection.find({'word':word})
return render_template('wordsearch.html',data=data)
在模板中,我仅将其用于第一个索引,并且不检查示例或同义词是否为空:
{% for word in data %}
<tr>Meaning :{{ word['meanings'][0]['def'] }}</tr><br>
<tr>Example :{{ word['meanings'][0]['example'] }}</tr><br>
<tr>Parts Of Speech :{{ word['meanings'][0]['speech_part'] }}</tr>
{% endfor %}
输出为:
1)如何将所有索引结果显示为
meaning1: def1
speechpart1: speech_part1
example1: //2)writing condition for this to show if exits
synonym: //2)writing condition for this to show if exits
Meaning2: def2
........
........
我已经尝试了 2) 的运气,如下所示:
{% for word in data if word['meanings'][0]['example'] %}
但这也不起作用
任何帮助表示赞赏,TIA
解决方案
您还必须使用嵌套的 for 循环进行迭代meanings
并在之前检查空值
{% for word in data %}
{% for meaning in word['meanings'] %}
<tr>Meaning :{{ meaning['def'] }}</tr><br>
{% if meaning['example'] %}
<tr>Example :{{ meaning['example'] }}</tr><br>
{% endif %}
{% if meaning['speech_part'] %}
<tr>Parts Of Speech :{{ meaning['speech_part'] }}</tr>
{% endif %}
{% endfor %}
{% endfor %}
推荐阅读
- java - 为什么 PendingIntent 会触发?
- python - MySQL 格式和 Flask 模板
- html - 构建下拉过滤器
- regex - 如何使用多行文本创建重复的非捕获组?
- html - 将 API 数据拉入具有嵌入标签,有没有办法将文本包装在 HTML 标签中?
- angular - 在 Angular 中创建 *with* 功能的动态按钮的正确方法
- code-analysis - 全局抑制 Stylecop 规则不起作用
- php - 选择父母的孩子时如何使父母处于活动状态
- reactjs - NextJS useEffect locaStorage 问题
- web-scraping - 如何从 scrapy 项目创建可执行文件?