Python pandas read_excel не перехватывает исключенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python pandas read_excel не перехватывает исключения

Сообщение Anonymous »


РЕДАКТИРОВАТЬ: Я обнаружил, что причина, по которой мои исключения не перехватываются, заключается в том, что
они на самом деле выдаются другой функцией,
куда я поместил попытку кроме блока. Ошибка новичка. Если мод хочет удалить
или предложите, как я могу отредактировать вопрос, пожалуйста, сделайте это. Я не удалил его, поскольку
у него есть ответ.


Я пытаюсь добавить обработку ошибок в свой код, который считывает данные из электронной таблицы Excel с использованием библиотеки pandas.
Я раньше не выполнял обработку исключений такого типа в Python, поэтому не уверен, что делаю неправильно.

В моем следующем фрагменте кода исключение FileNotFoundError работает нормально, когда я помещаю файл xlsx туда, где моя программа не может его найти. Моя программа завершает работу, отображая сообщение и имеет правильный статус завершения.

Код: Выделить всё

try:
xdf = pd.read_excel(xlsxdir + 'web_targets.xlsx', 'targets', skiprows=[0], index_col=None, na_values=['NA'], usecols = "A:F")
except KeyError as e:
print("Expected column headers not found")
sys.exit(1)
except TypeError as e:
print("Type Error")
sys.exit(1)
except FileNotFoundError as e:
print("Excel file not found " + str(e))
sys.exit(1)
К сожалению, когда программа может найти файл, но имеет неожиданный ключ/заголовок столбца, ни исключения KeyError или ValueError не ловятся, и я получаю следующая трассировка:

Код: Выделить всё

Traceback (most recent call last):
File "/home/justin/projects/web_targets/venv/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 4410, in get_value
return libindex.get_value_at(s, key)
File "pandas/_libs/index.pyx", line 44, in pandas._libs.index.get_value_at
File "pandas/_libs/index.pyx", line 45, in pandas._libs.index.get_value_at
File "pandas/_libs/util.pxd", line 98, in pandas._libs.util.get_value_at
File "pandas/_libs/util.pxd", line 83, in pandas._libs.util.validate_indexer
TypeError: 'str' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "./create_new_configs.py", line 60, in 
for record in xdfToDict(xdf):
File "./create_new_configs.py", line 29, in xdfToDict
'app': row['App'],
File "/home/justin/projects/web_targets/venv/lib/python3.6/site-packages/pandas/core/series.py", line 871, in __getitem__
result = self.index.get_value(self, key)
File "/home/justin/projects/web_targets/venv/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 4418, in get_value
raise e1
File "/home/justin/projects/web_targets/venv/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 4404, in get_value
return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None))
File "pandas/_libs/index.pyx", line 80, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 90, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'App'
Изначально у меня не было исключения TypeError, но я подумал, может быть, поскольку это первое исключение, вам нужно сначала его «переловить», поэтому я добавил это, но ничего не изменилось.

Я немного поискал и, насколько я могу судить, делаю то же самое, что и примеры, например. Исключения KeyValue.

Мне просто хотелось бы иметь возможность обнаружить некоторые потенциальные ошибки ввода данных и вернуться к сценарию BASH, который я буду использовать для вызова этой программы. подходящий код выхода.

Подробнее здесь: https://stackoverflow.com/questions/618 ... exceptions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ExceptionHandler не перехватывает исключения исключения
    Anonymous » » в форуме JAVA
    0 Ответы
    69 Просмотры
    Последнее сообщение Anonymous
  • Python pandas read_excel не перехватывает исключения
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Функция read() в C++ аналогична функции c read()
    Гость » » в форуме C++
    0 Ответы
    136 Просмотры
    Последнее сообщение Гость
  • PHP 7: SessionHandlerInterface::read(string $session_id): строка должна быть совместима с SessionHandlerInterface::read(
    Anonymous » » в форуме Php
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Почему моя собственная реализация IExceptionHandler не перехватывает все исключения в ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»