eval使用时报错:Error: name 'false' is not defined解决
一、报错原因分析
eval不支持null,true,false等,没法正确转换为None,True,False等,所以,才明白,此处的错误,是由于字符串中,包含了null,eval函数无法正确解析,所以报错“NameError: name ‘null’ is not defined”。
二、错误处理
https://blog.csdn.net/qq_33547191/article/details/88744494
声明一下,None,True,False等值的赋值
【ps:具体根据要解析的字符串内容去定义】
globals = {
'false': False, 'true': True,'null':''
}
参考博客
三、实际例子
json通过excel读取时数据类型是字符串类型,此时取值时,需要将数据转换成字典形式
1.json举例
{
"code": 0,
"data": {
"id": "999",
"lastLoginTime": "2021-05-25 17:35:58",
"loginId": "",
"orgCode": "",
"orgName": "福建省医保局",
"orgType": "1",
"token": "",
"userMob": "18877779990",
"userName": "省医保局"
},
"detail": "",
"fail": false,
"message": "",
"success": true,
"type": ""
}
2.eval解析
【ps:如果封装 成函数时,可以使用global声明】
false = False
true = True
null = ''
a = '{"code":0,"data":{"id":"1227139517987790850","lastLoginTime":"2021-05-28 14:37:49","loginId":"reg_admin","orgCode":"","orgName":"福建省医保局","orgType":"1","token":"","userMob":"18877779990","userName":"省医保局"},"detail":"","fail":false,"message":"","success":true,"type":""}'
print(eval(a))
最终输出:
{'code': 0, 'data': {'id': '1227139517987790850', 'lastLoginTime': '2021-05-28 14:37:49', 'loginId': 'reg_admin', 'orgCode': '', 'orgName': '福建省医保局', 'orgType': '1', 'token': '', 'userMob': '18877779990', 'userName': '省医保局'}, 'detail': '', 'fail': False, 'message': '', 'success': True, 'type': ''}
四、eval使用
转载于:https://blog.csdn.net/qq_29883591/article/details/53443062
eval
(expression, globals=None, locals=None)