报错NameError: name ‘null’ is not defined的解决方法

eval()介绍

eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。
它可以把list,tuple,dict和string相互转化。
在接口自动化中经常用到。
比如啊,我们把测试数据写成数组的格式存放于excle表中,当读取出来时就是str格式,此时用eval,就可以把取到的值转换为正常的数组或者字典的格式了。

NameError: name ‘null’ is not defined是怎么出现的

a = "{"a":1,"b":2,"c":null}"
a = eval(a)
print(a)

在转换的字符串中,存在null时,就会出现NameError: name ‘null’ is not defined这个错误。

解决方法

巧用 replace()方法。
将字符串中的null替换掉!

str = "{"a":1,"b":2,"c":null}"
str.replace("null", "123456")
a = eval(str)
print(a)

这样子就能够将字符串中的null替换掉了。就能够正常的转换了。

应用场景

我为什么要这么做呢?
因为我在做自动化测试的时候,需要在数据库中取出一个
[{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null}]
这样子格式的数据来和预期值做对比。
我的预期值只是a,所以我要在这个数据中,把a取出来。
所以就需要上述的这种操作了!

a = "[{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null}]"
hlist = eval(a)

在这一步的时候因为有null存在,所以报错。

a = "[{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null},{"a":1,"b":2,"c":null}]"
a = a.replace("null", "123456")
hlist = eval(a)
testhope = 1
if testhope == hlist[0]["a"]:
pass

这样子就可以了,因为null被替换为了123456.

最新文章

  1. 飞流直下的精彩 -- 淘宝UWP中瀑布流列表的实现
  2. CodeForces 519B A and B and Compilation Errors
  3. MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突(转载)
  4. Perl的基本语法(转)
  5. Spark Job的提交与task本地化分析(源码阅读八)
  6. 【EF学习笔记07】----------加载关联表的数据 贪婪加载
  7. Assembly 'Microsoft.Office.Interop.Excel
  8. [LeetCode 115] - 不同子序列(Distinct Subsequences)
  9. 【HDU 4786 Fibonacci Tree】最小生成树
  10. JavaSE(十)集合之List
  11. linux操作系统基础篇(四)
  12. C. Neko does Maths(数论 二进制枚举因数)
  13. Linux下发送邮件
  14. vue高级组件之provide / inject
  15. 配置supervisor管理beego应用
  16. HttpTool.java 【暂保留】
  17. Java 构造器Constructor 继承
  18. 深入理解Linux网络技术内幕——用户空间与内核空间交互
  19. Dubbo架构设计详解(转载)
  20. 数据结构与算法JavaScript描述——链表

热门文章

  1. ASP.Net Core 5.0 MVC中AOP思想的体现(五种过滤器)并结合项目案例说明过滤器的用法
  2. 苹果证书p12和描述文件的创建方法
  3. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)
  4. Trailing commas
  5. LeetCode 算法面试题汇总
  6. Recoil & React official state management
  7. ES6 Generator vs ES6 async/await
  8. Android低功耗蓝牙(蓝牙4.0)——BLE开发(上)
  9. ng mock服务器数据
  10. 11月16日NGK公链第13期官方快讯!