ОШИБКА: OverflowError: аргумент mktime вне допустимого диапазона

timestamp = []
for d, t in zip(data['Date'], data['Time']):
    try:
        ts = datetime.datetime.strptime(d+' '+t, '%m/%d/%Y %H:%M:%S')
        timestamp.append(time.mktime(ts.timetuple()))
    except ValueError:
        # print('ValueError')
        timestamp.append('ValueError')

ОШИБКА: OverflowError: аргумент mktime вне допустимого диапазона

это из кода прогнозирования землетрясений с использованием машинного обучения


person CHAITRALEE MULAY    schedule 05.04.2021    source источник
comment
На каком компьютере ты это пишешь? Линукс, Мак, Винда?   -  person Ollie in PGH    schedule 05.04.2021
comment
Добро пожаловать в СО. Пожалуйста, найдите время, чтобы прочитать часто задаваемые вопросы, чтобы задать вопросы. Я искал другой вопрос с похожей ошибкой и нашел там ваш вопрос, опубликованный как ответ. Разве ответы там не решили вашу проблему? Вы также должны предоставить минимальный воспроизводимый пример с жестко закодированными всеми необходимыми значениями. И, пожалуйста, приложите усилия, чтобы научиться пользоваться сайтом и задавать хороший вопрос.   -  person Reti43    schedule 05.04.2021
comment
Отвечает ли это на ваш вопрос? Python | ошибка переполнения mktime   -  person Reti43    schedule 05.04.2021
comment
@ Reti43 Reti43 Я думаю, они ответили, это ошибка, специфичная для Windows, из-за ограничений эпохи. Я предполагаю, что он использует дату до 1970 года.   -  person NationWidePants    schedule 05.04.2021
comment
В общем, это кажется довольно запутанным способом получить время Unix. Объекты datetime уже давно имеют метод timestamp().   -  person MrFuppes    schedule 05.04.2021


Ответы (1)


Я хотел доказать, что проблема воспроизводима: я добавлю к этому, если найду решение.

import time, datetime
d = '04/04/1000'
t = '12:40:00'
dj = d + ' ' + t
ts = datetime.datetime.strptime(dj, '%m/%d/%Y %H:%M:%S')
time.mktime(ts.timetuple())
person NationWidePants    schedule 05.04.2021
comment
То, что эта ошибка может быть воспроизведена, даже не подлежит сомнению. Я даже связал в комментариях еще один вопрос, который объясняет, как и почему (что ОП даже знает о себе). Но он не предоставил нам значения, которые он использовал, хотя весьма вероятно, что они были за пределами допустимого диапазона, как прямо указано в самой ошибке. - person Reti43; 05.04.2021
comment
@ Reti43 Reti43 Правда, вы ответили на него, поэтому я согласился с вами, но комментарии не могут принимать форматированный код; ограничение этой платформы. Лично я считаю, что они должны брать уценку в комментариях. - person NationWidePants; 05.04.2021
comment
@ Reti43 Reti43, ваша первая жалоба на этот пост заключалась в том, что он не предоставил воспроизводимый код. - person NationWidePants; 05.04.2021
comment
Это верно. И все, что вы сделали, это присвоили значения d и t. Это именно то, к чему мой комментарий подталкивал ОП. Можно спорить, был ли необходим определенный вклад, учитывая, насколько очевидной была его ошибка, но это не было жалобой, как бы вы на это ни смотрели. - person Reti43; 05.04.2021
comment
@ Reti43 Reti43 Я полагаю, что предоставление примера даст шанс для роста, но с этим можно поспорить. Я не согласен с вашей позицией. - person NationWidePants; 05.04.2021