Ошибка ключа, несмотря на ключ, есть в словаре, который я получил из файла CSV - PullRequest
0 голосов
/ 07 июня 2018
def duration_in_mins(datum, city):
    if city == 'Washington':
        duration = round(int(datum['Duration (ms)']) /60000, 4)
    else:
        duration = round(int(datum['tripduration']) /60 ,4)
    return duration

Но после вызова этой функции это дает мне ключевую ошибку

def condense_data(in_file, out_file, city):
    with open(out_file, 'w') as f_out, open(in_file, 'r') as f_in:
        out_colnames = ['duration', 'month', 'hour', 'day_of_week', 'user_type']        
        trip_writer = csv.DictWriter(f_out, fieldnames = out_colnames)
        trip_writer.writeheader()
        trip_reader =csv.DictReader(in_file)

        for row in trip_reader:
            new_point = {}
            dur=duration_in_mins(row, city)
            month,hour, day_of_week=time_of_trip(row, city)
            type=type_of_user(row, city)
            new_point={'duration':dur, 'month':month, 'hour':hour, 'day_of_week':day_of_week, 'user_type':type}
            trip_writer.writerow(**new_point)

После успешной компиляции функции конденсата_данных, когда я проверяю, работает ли она или нет, я обнаружил, чтоэто дает мне ключевую ошибку

KeyError: 'Duration (ms)'

1 Ответ

0 голосов
/ 24 июня 2018

Сложно сказать по вашему коду, хотя он хорошо написан, мне просто недостаточно понять вашу точную проблему.Тем не менее, это может быть так же просто, как переключение

duration = round(int(datum['Duration (ms)']) /60000, 4)

на:

duration = round(int(datum['duration']) /60000, 4)

Опять же, трудно сказать без формата вашего ввода CSV, или, возможно, какой-то код отсутствует.Эта ссылка помогла мне с похожей ошибкой в ​​последнее время:

https://wiki.python.org/moin/KeyError

Это может быть совершенно бесполезно для вас, но я надеюсь, что нет.Удачного кодирования!И если вы проясните свою проблему, я был бы рад снова рассмотреть ее.

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