使用eval将字符串转化成字典时报name 'null' is not defined错误解决办法


在接口测试过程中,为了取值将形如字典形式的字符串使用eval()方法转化成字典方便取值

str={"code":100,"num":1,"data":5}

当值不是null时可以使用eval(str)正常转为字典

strnull={"code":100,"num":1,"data":[null]}

而当值为null值时,再次使用eval(strnull)则报错:name 'null' is not defined

如何处理这个报错呢?如何将值为null的字符串转化成字典类型呢?

上网查询后得知:python无法处理null这样的字符串,python中的变量“空”,不是null,也不是NULL,而是None,所以报错

解决办法如下:

一、将null转化为空

global null

null = ''

strnull={"code":100,"num":1,"data":[null]}

strdict=eval(strnull)

type(strdict)#dict

print(strdict)#{'data': [''], 'code': 100, 'num': 1}

这种办法可以正确转为字典类型了~~~~

二、使用json模块的loads()方法

from flask import json#引入json模块
strdict=json.loads(strnull)
print(strdict)#{'data': [None], 'num': 1, 'code': 100}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM