TypeError:unorderable类型:NoneType()> int()float错误

时间:2015-10-25 23:36:50

标签: python

import csv
import requests
csv_file = "cmiday.csv"
reader = csv.DictReader(open(csv_file))
data = list(reader)
x=[]
y=[]
for row in data:

try:
    hum=float(row['max_rel_hum'])
    percip=float(row['precip'])
except ValueError:
    hum=None
    percip=None
if hum > 0 and hum < 100 and percip < 10 and percip > 0:
    x.append(hum)
    y.append(percip)

这是我的代码,我得到了

TypeError: unorderable types: NoneType() > int()

第15行。任何想法如何摆脱它?感谢

2 个答案:

答案 0 :(得分:2)

引发TypeError是因为如果引发了ValueError,您将humpercip设置为None。这意味着您在运行时遇到数据问题

hum=float(row['max_rel_hum'])
percip=float(row['precip'])

您的某个列似乎包含无法转换为float的数据。

不是将humprecip设置为None,而是可以改为:

except ValueError:
    continue

这将跳过包含无效数据的行。

答案 1 :(得分:1)

每当您的代码导致ValueErrorhumpercip设置为None时。然后,您尝试将humpercip与数字进行比较,但这些数字无法完成。要解决此问题,请将except设置为humpercip为可用值(如0或其他可产生预期结果的值),跳至使用row的下一个continue,或使用break完全结束循环。