报错NameError: name ‘null’ is not defined的解决方法
2024-08-30 18:30:24
报错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.
最新文章
- 飞流直下的精彩 -- 淘宝UWP中瀑布流列表的实现
- CodeForces 519B A and B and Compilation Errors
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突(转载)
- Perl的基本语法(转)
- Spark Job的提交与task本地化分析(源码阅读八)
- 【EF学习笔记07】----------加载关联表的数据 贪婪加载
- Assembly 'Microsoft.Office.Interop.Excel
- [LeetCode 115] - 不同子序列(Distinct Subsequences)
- 【HDU 4786 Fibonacci Tree】最小生成树
- JavaSE(十)集合之List
- linux操作系统基础篇(四)
- C. Neko does Maths(数论 二进制枚举因数)
- Linux下发送邮件
- vue高级组件之provide / inject
- 配置supervisor管理beego应用
- HttpTool.java 【暂保留】
- Java 构造器Constructor 继承
- 深入理解Linux网络技术内幕——用户空间与内核空间交互
- Dubbo架构设计详解(转载)
- 数据结构与算法JavaScript描述——链表
热门文章
- ASP.Net Core 5.0 MVC中AOP思想的体现(五种过滤器)并结合项目案例说明过滤器的用法
- 苹果证书p12和描述文件的创建方法
- 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)
- Trailing commas
- LeetCode 算法面试题汇总
- Recoil &; React official state management
- ES6 Generator vs ES6 async/await
- Android低功耗蓝牙(蓝牙4.0)——BLE开发(上)
- ng mock服务器数据
- 11月16日NGK公链第13期官方快讯!