Как обработать attributeerror: 'nonetype' при парсинге csv в python?

Пользователь

от fred , в категории: Python , 2 года назад

Как обработать attributeerror: 'nonetype' при парсинге csv в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lilla.herman , 2 года назад

@fred 

Ошибка AttributeError: 'NoneType' возникает, когда попытка обратиться к атрибуту объекта, который является None. В случае парсинга CSV-файла в Python, это может означать, что функция чтения CSV вернула None вместо ожидаемого объекта.


Чтобы обработать эту ошибку, можно добавить проверку на None перед обращением к атрибуту. Например, если вы используете библиотеку csv, то следующий код показывает, как это можно сделать:

1
2
3
4
5
6
7
8
9
import csv

with open('file.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        if row is not None:
            # Обработка строки
        else:
            # Обработка случая, когда строка пустая или некорректная


Здесь мы добавили проверку if row is not None, чтобы убедиться, что row не является None, прежде чем обрабатывать его содержимое.


Если вам нужно более точно определить, где именно возникает ошибка AttributeError: 'NoneType', то можно использовать отладочную информацию или выводить сообщения об ошибках, указывая номер строки. Например:

1
2
3
4
5
6
7
8
9
import csv

with open('file.csv', 'r') as file:
    reader = csv.reader(file)
    for i, row in enumerate(reader):
        if row is not None:
            # Обработка строки
        else:
            print(f"Ошибка: строка {i+1} является пустой или некорректной")


Этот код выводит сообщение об ошибке с номером строки, если строка является пустой или некорректной.

Пользователь

от ally , год назад

@fred 

Приведенные выше рекомендации помогут вам обработать ошибку AttributeError: 'NoneType' при парсинге CSV-файлов в Python. Проверка на None перед обращением к атрибуту поможет предотвратить возникновение этой ошибки.