今天写脚本造数据的时候 接口数据解密后返回的是一个字符串 要去取里面的token和userid于是用eval函数把字符串转换为字典
然后报错NameError: name ‘null’ is not defined
查阅资料后得知 python中的空 是None
而eval 或者 literal_eval无法正确的把null转成None 所以报错
后改用json.loads()就解决了
python的三种字符串转字典的方式
第一种 eval()
dict = eval(str) 不支持null 如果不是合法的数据类型会抛出异常
第二种 ast.literal_eval()
import ast
dict = ast.literal_eval(str) 不支持null 如果不是合法的数据类型会不转换
第三种 json.loads()
import json
dict = json.loads(str) 这种方式不适用于单引号的字符串 双引号的字符串才行