我们在使用 Python 或者 Ansible 来进行自动化任务的时候常常会进行一些数据的组合和提取来生成文件。

但是我们需要为不同的情况来做分析和进行判断。

如果我们需要对返回的 list 来进行提取的时候我们常常只是运行一个 for loop 就解决了问题。

如果输出如下所示:

{"DevNetSG": {"data": [{"MachineName": "DNADSFSDFSDF01","Type": "DNA Center","IPAddress": "192.168.0.1","Status": "True"},{"MachineName": "IOSSDFSDFWEGV01","Type": "Cisco IOS","IPAddress": "192.168.0.2","Status": "False"}]}
}

那么提取很简单, 如下所示我们就可以从 list 中提取出对应的信息并且组合成对应的文字

{% for machine in DevNetSG.data %}
{% if machine.Status == "True" %}
Please take note {{ machine.MachineName }} is Active !
{% else %}
Please take note {{ machine.MachineName }} is not Active !
{% endif %}
{% endfor %}

但是有的时候我们也会遇到这样的情况, 也就是返回的值为 null

{"DevNetSG": {"data": null}
}

如果照样使用上文的 jinja2 选择方式就会有问题,因为这种情况没有考虑到。

于是我们可以使用下面的代码来解决这个问题

{% if DevNetSG.data is defined and DevNetSG.data[0] is defined %}
...
{% else %}
...
{% endif %}

最终的代码如下所示:

{% if DevNetSG.data is defined and DevNetSG.data[0] is defined %}
{% for machine in DevNetSG.data %}
{% if machine.Status == "True" %}
Please take note {{ machine.MachineName }} is Active !
{% else %}
Please take note {{ machine.MachineName }} is not Active !
{% endif %}
{% endfor %}
{% else %}
Please take note there is no Machine in the list!
{% endif %}

欢迎关注,让我们共同学习!

python判断列表是否为空_Jinja2: 判断返回的列表是否为空相关推荐

  1. python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...

    1.示例代码 1)一般情况s = [1,2,3] t = reversed(s) for i in t: print(i) # 输出: 3,2,1 2) 执行pop()s = [1,2,3] t = ...

  2. Python筛选列表中指定的值,返回新列表

    文章目录 场景 简单筛选 筛选ls1中,含ls2的元素 筛选ls1中,不含ls2的元素 去重(保留顺序) 场景 简单筛选 # 筛选[剑]系武器 ls1 = ['木剑', '落日弓', '蛋刀', '峨 ...

  3. spring字符串判空_spring框架返回json数据null转空字符串

    spring项目中,前端获取服务器返回的json时,里面有null值,如果没做校验,就会导致js报错,但是不推荐每个返回的地方手动处理,而是应该在框架中统一配置. 前面关于json日期格式化的文章中, ...

  4. python中如何判断输入的是英文字母_python如何判断一个字符是否为汉字,英文字母,数字,空还是其他...

    一直在忙工作的事情,对不起大家,今后一定抽出时间来写python,和大家一起学python. 今天给大家一段代码,大家可以看一下哈. # 判断一个字符是否为汉字,英文字母,数字,空还是其他 # 使用U ...

  5. python的列表的remove()方法、判断if xxx in xx条件比较耗时问题

    最近在coding的时候,写的代码中只有一层循环,却很耗时,不明觉厉.不知道是哪里出了问题,于是我就在每一行代码中都打印一下耗时,最终发现了这个罪魁祸首.这里我只说明两个我遇到耗时的场景,当然还有很多 ...

  6. python输入月份判断季节_用户输入月份,判断这个月是哪个季节。(要求使用列表)_学小易找答案...

    [单选题]图 中所示电路的戴维南等效电路,用 U . I 和 R 表达出戴维南等效电路的开路电压 U OC 和等效电阻 R O .正确的是( ). [单选题]甲百货公司是增值税一般纳税人,本年7月直接 ...

  7. python 判断两个列表间是否具有包含关系以及获取子列表在父列表中的索引

    python 判断两个列表间是否具有包含关系以及获取子列表在父列表中的索引 import operator def get_sub_list_index(parent_list, sub_list): ...

  8. 1008day1:列表-字符串基础知识、正则提取字符串小数、python数据类型、判断为假的方法、格式判断if elif elif else、字符串遍、计算器、提取str字母、斐波那契数列、水仙花数

    文章目录 一.提取字符串里面的小数:正则 二.Python数据类型 三.== 字符串:str基础知识 == 四.整型及浮点型 五.判断为假的方法 六.判断格式 七.循环:字符串遍历 六.循环1~100 ...

  9. python判断列表中含有_Python:判断列表中含有字符串且组成新的列表打印输出-Dotest董浩...

    ''' 题一:判断列表中含有字符串且组成新的列表打印输出 知识点:列表.列表的增删改查.for循环.if判断 ''' #@Author:Dotest软件测试 #@QQ:1274057839 names ...

最新文章

  1. Nature:MIT团队造全新声感织物,这件“毛衣”可以听到你的心跳
  2. python笔记基础-python学习笔记之基础一(第一天)
  3. PHP预定义常量DIRECTORY_SEPARATOR
  4. 群友福利 | 55 本《AI 嵌入式系统: 算法优化与实现》免费送
  5. mysql 排序后 下一条记录_Mysql如何使用order by工作
  6. webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server - QxQstar - 博客园
  7. 定量遥感:计算地方时和太阳高度角(C++代码)
  8. Sharepoint2007个人网站不能同步域信息的处理方法
  9. Linux Mysql 安装方法
  10. 独家总结 | 决策树算法Python实现(附代码详解及注释)
  11. 大数据开源框架环境配置(一)——安装VMware
  12. 坦克世界因计算机丢失,坦克世界新版本上线在即,玩家必须知道的几件事。
  13. arx 锁定解锁图层 刷新透明度
  14. 一份简单、直接、高效的中文求职信模板,一般是直接写在邮件正文中。
  15. iphone或者ipad上安装自己打包的ipa文件
  16. VScode输入感叹号时,没有出现模板
  17. 基于一阶倒立摆系统的模糊神经网络PID控制
  18. Unity游戏安卓和苹果游戏中植入广告增加收入
  19. C语言实现扫描文件下所有目录
  20. 京东主图视频上传,如何关联商品投放?

热门文章

  1. 使用EntityFrameworkCore实现Repository, UnitOfWork,支持MySQL分库分表
  2. OSS.Common获取枚举字典列表标准库支持
  3. 计算机一级选择题已做完确认,计算机一级选择题(附答案)
  4. pdf.js 利用HTML5技术显示pdf内容
  5. 经典实用SQL语句大全汇总
  6. 平面坐标(方里网)转换为经纬度坐标
  7. SVN之如何添加默认.a文件
  8. Eclipse之如何导入arr文件
  9. 趣学算法之斐波拉契数列实现
  10. Android之面试题精选,自己收藏下