csv,IndexError:列表索引超出范围
Posted
技术标签:
【中文标题】csv,IndexError:列表索引超出范围【英文标题】:csv, IndexError: list index out of range 【发布时间】:2019-08-04 11:43:07 【问题描述】:我正在阅读Python Crash Course一书中的示例并做示例。现在我陷入了从 csv 文件中读取数据的困境。我正在尝试获取 max_temperatures
的值并阅读它,但是当我以与书中相同的方式执行此操作时,会显示错误:
IndexError:
high = int(row[1])
IndexError: list index out of range
代码:
import csv
filename = "sitka_weather_history_2014.csv"
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
highs = []
for row in reader:
high = int(row[1])
highs.append(high)
print(highs)
【问题讨论】:
【参考方案1】:由于输入 file 包含空行,因此您必须确保列表 (row
) 不为空。如果它是空的 - 只需跳过它。
类似:
for row in reader:
if row:
high = int(row[1])
highs.append(high)
【讨论】:
@Matheo 很高兴为您提供帮助。 而且我知道解决方案非常简单。文件中有空行......非常感谢!【参考方案2】:high
是行中的第一个元素吗?如果是这样,请记住 Python 从 0 开始计数 - 所以应该是 high = int(row[0])
【讨论】:
不,high 是行中的第二个元素,第一个是数据。这就是为什么我不知道如何到达该行中的第二个元素。 这里我上传文件“sitka_weather_history_2014”ibb.co/x8tsyKz的图片 首先,请将此示例数据上传到问题中。问题应该足够完整,这样回答者就不必在 cmets 中要求澄清了。 其次,也许你的文件没有被正确解析?可能整行被读取为一个长对象(因此该行中没有第二个元素)。尝试打印row[0]
(这是一种有用的调试技术),看看你在第一个元素中得到了什么。以上是关于csv,IndexError:列表索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章
Python Google Geocoding API - IndexError:列表索引超出范围?