使用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}

原文地址:https://www.cnblogs.com/zhuyue1/p/6427763.html