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行。任何想法如何摆脱它?感谢
答案 0 :(得分:2)
引发TypeError
是因为如果引发了ValueError,您将hum
和percip
设置为None
。这意味着您在运行时遇到数据问题
hum=float(row['max_rel_hum'])
percip=float(row['precip'])
您的某个列似乎包含无法转换为float的数据。
不是将hum
和precip
设置为None
,而是可以改为:
except ValueError:
continue
这将跳过包含无效数据的行。
答案 1 :(得分:1)
每当您的代码导致ValueError
,hum
和percip
设置为None
时。然后,您尝试将hum
和percip
与数字进行比较,但这些数字无法完成。要解决此问题,请将except
设置为hum
和percip
为可用值(如0
或其他可产生预期结果的值),跳至使用row
的下一个continue
,或使用break
完全结束循环。