我的代码正在返回:
Traceback (most recent call last):
File "/Users/Justin/Desktop/Program 5/Weather_Program#5.py", line 55, in <module>
if date[0:] == None:
TypeError: 'NoneType' object is not subscriptable
我确切地知道这个错误发生在什么地方和原因,但我不知道如何修复它。任何想法都将不胜感激。在
我在csv
中读取的数据是左栏中的日期,右栏是降水量。20000101
是2001年1月1日,0是0英寸的降雨量。在
代码:
import csv
january = []
february = []
march = []
april = []
may = []
june = []
july = []
august = []
september = []
october = []
november = []
december = []
def read_cell(column, row):
"""Input x & y coordinate for CSV file: Returns information in cell"""
with open('precipitation.csv', 'r') as f:
reader = csv.reader(f)
y_count = 0
for n in reader:
if y_count == row:
cell = n[column]
return cell
y_count += 1
stormy = 0
row_number = 0
while stormy < 1:
with open('precipitation.csv', 'r') as f:
date = read_cell(0,row_number)
rain = read_cell(1,row_number)
if date[0:] == None:
stormy += 1
break
elif date[4:6] == "01":
january.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "02":
february.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "03":
march.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "04":
april.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "05":
may.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "06":
june.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "07":
july.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "08":
august.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '09':
september.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '10':
october.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '11':
november.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '12':
december.append(read_cell(1,row_number))
row_number += 1
print(january)
你打开CSV两次
每次读取单元格时,都会重新扫描整个CSV文件
第55行的异常与源代码不匹配
你没有处理空行/单元格。在while循环的顶部,您需要:
您是否认为问题可能在输入文件中? 其他的可能性:几个月内领先的零位可能是问题所在。在
你会考虑使用熊猫的数据帧吗?你可以过滤得到月份并将这些每月的结果存储到每个月的数据帧中
CSV文件很容易导入到数据帧中。如果你需要更多的帮助,我会给你的
while
循环的唯一停止条件是if date[0:] == None
。这意味着循环将继续,直到某个时候文件没有另一行,此时date
和{None
。此时,在stop条件下,您正在尝试执行None[0:]
,这是抛出错误的原因。在请改为尝试
if date == None
。在相关问题 更多 >
编程相关推荐