2015-11-16 3 views
0

Я пытаюсь получить данные из ячеек Excel (формат номера) и преобразовать их в тип даты в Django 1.7.7:Джанго преобразовать тип даты (TypeError)

import datetime as dt 

birthdate =dt.date.fromtimestamp(sheet.row_values(idx)[63]).strftime('%Y-%m-%d') 

но получил эту ошибку:

File "t3_import2.py", line 46, in <module> 
    birthdate =dt.date.fromtimestamp(sheet.row_values(idx)[63]).strftime('%Y-%m-%d') 
TypeError: a float is required 

Почему он жалуется, когда я прямо бросаю его в поплавок?

+0

Какая дата/время 'sheet.row_values ​​(IDX) [63]'? – NotAnAmbiTurner

ответ

0

sheet.row_values(idx)[63] не является поплавком.

Если я правильно понял, fromtimestamp ожидает временную метку POSIX, которая представляет собой вектор, представляющий количество секунд, прошедших от заданного времени, к времени/дате, которое она представляет. Я не вижу, что такое sheet.row_values(idx)[63] со своего поста, но я бы поставил Python, взяв его как int.

classmethod date.fromtimestamp(timestamp)¶

Return the local date corresponding to the POSIX timestamp, such as is returned by time.time(). This may raise ValueError, if the timestamp is out of the range of values supported by the platform C localtime() function. It’s common for this to be restricted to years from 1970 through 2038. Note that on non-POSIX systems that include leap seconds in their notion of a timestamp, leap seconds are ignored by fromtimestamp().

попробовать это:

x = float(sheet.row_values(idx)[63]) 
birthdate = dt.date.fromtimestamp(x).strftime('%Y-%m-%d') 
Смежные вопросы