Использование словаря для выполнения метода объекта - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь выполнить следующий код

def get_data(full_file_path, **kwargs):

    file_extension = full_file_path.split(".")[-1]

    method = {"data":read_table(full_file_path, **kwargs),
              "csv":read_csv(full_file_path, **kwargs)}
    data = pd.method.get(file_extension)

    return data

Я получаю ошибку:

File "C:\Users\code\src\data\make_dataset.py", line 7, in get_data
    method = {"data":read_table(full_file_path, **kwargs),
NameError: name 'read_table' is not defined

Кто-нибудь знает, возможно ли выбрать метод объекта на основе словаря?

Заранее спасибо.

пс .: да, я «импортировал» pandas as pd.

1 Ответ

0 голосов
/ 01 мая 2018

Ссылки на функции в Python аналогичны обычным именам. Проблема в вашем коде состоит в том, что вы на самом деле пытаетесь вызвать функции из определения словаря. В этой версии вашей функции я разбил поиск на пару шагов, чтобы прояснить:

def get_data(full_file_path, **kwargs):

    file_extension = full_file_path.split(".")[-1]

    method = {"data": pd.read_table,
              "csv": pd.read_csv}
    read = method[file_extension]

    data = read(full_file_path, **kwargs)

    return data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...