当前位置 : 主页 > 编程语言 > python >

NameError: name ‘NaN‘ is not defined

来源:互联网 收集:自由互联 发布时间:2022-06-18
Python使用​eval​强制转换字符串为字典时报错 data.json的内容 {"id": "C_course-v1:McGillX+ATOC185x+2015_T1", "name": "自然灾害(自主模式)", "display_name": [1]} {"id": "C_course-v1:TsinghuaX+THESIS2015X+2015_T1


Python使用​eval​强制转换字符串为字典时报错

data.json的内容

{"id": "C_course-v1:McGillX+ATOC185x+2015_T1", "name": "自然灾害(自主模式)", "display_name": [1]}
{"id": "C_course-v1:TsinghuaX+THESIS2015X+2015_T1", "name": "2015年清华大学研究生学位论文答辩(二)", "display_name": [2]}
{"id": "C_course-v1:TsinghuaX+THESIS2014_1X_tv+_2014_", "name": "2014年清华大学研究生学位论文答辩(一)", "display_name": [NaN]}with open(r'data.json', 'r', encoding='utf-8') as f:
datas = f.readlines()
for data in datas:
print(eval(data))

执行以上代码换时会报错:

​File “”, line 1, in NameError: name ‘NaN’ is not defined​

解决方案

为​NaN​提供一个默认值

改进后的代码如下:

nan_default = {
'NaN': 0
}
with open(r'data.json', 'r', encoding='utf-8') as f:
datas = f.readlines()
for data in datas:
print(eval(data, nan_default))



上一篇:Ubuntu18.04 安装PyQt5
下一篇:没有了
网友评论