What error occurs when 'NaN' is not defined in the code?
- 内容介绍
- 文章标签
- 相关推荐
本文共计245个文字,预计阅读时间需要1分钟。
使用Python的`eval`函数将字符串转换为字典时,可能会遇到错误。`data.json`的内容如下:
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': 0
}
with open(r'data.json', 'r', encoding='utf-8') as f:
datas = f.readlines()
for data in datas:
print(eval(data, nan_default))
本文共计245个文字,预计阅读时间需要1分钟。
使用Python的`eval`函数将字符串转换为字典时,可能会遇到错误。`data.json`的内容如下:
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': 0
}
with open(r'data.json', 'r', encoding='utf-8') as f:
datas = f.readlines()
for data in datas:
print(eval(data, nan_default))

