Хобрук: Ваш путь к мастерству в программировании

csv, IndexError: индекс списка вне допустимого диапазона

Я читаю и делаю примеры из книги 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

Поскольку входной файл содержит пустые строки, необходимо убедиться, что список (row) не пуст. Если он пустой - просто пропустите его.

Что-то типа:

for row in reader:
    if row:
        high = int(row[1])
        highs.append(high)
04.08.2019
  • @ Матео, я рад помочь. 04.08.2019
  • И я знаю, что решение было очень простым. В файле были пустые строки.. .Спасибо большое! 04.08.2019

  • 2

    high первый элемент в строке? Если это так, помните, что Python начинает считать с 0, поэтому должно быть high = int(row[0])

    04.08.2019
  • Нет, high — это второй элемент в строке, первый — это данные. Вот почему я не знаю, как добраться до второго элемента в строке. 04.08.2019
  • Здесь я загружаю изображение файла sitka_weather_history_2014 ibb.co/x8tsyKz 04.08.2019
  • Прежде всего, пожалуйста, загрузите этот образец данных в вопрос. Вопросы должны быть достаточно полными, чтобы отвечающим не приходилось просить разъяснений в комментариях. 04.08.2019
  • Во-вторых, может быть, ваш файл неправильно проанализирован? Возможно, вся строка читается как один длинный объект (и, следовательно, нет второго элемента в строке). попробуйте напечатать row[0] (это полезная техника отладки) и посмотрите, что вы получите в первом элементе. 04.08.2019
  • Новые материалы

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..

    Раскрытие возможностей НЛП: часть речевой маркировки и ее проблемы
    В сфере обработки естественного языка (NLP) маркировка частей речи (POS) выступает в качестве фундаментального метода, позволяющего компьютерам понимать и анализировать человеческий язык на..

    Под поверхностью: раскрытие деталей системы с помощью инструментов Linux CLI
    Чем больше вы изучаете Linux и продвигаетесь вперед, тем больше вам нужно проверять информацию о вашей системе. Эта информация может касаться аппаратного обеспечения, такого как процессор,..