Конвертировать Json Date с 12 цифрами Python Datetime - PullRequest
0 голосов
/ 08 января 2019

Я получаю json, который я конвертирую в DataFrame df. Один из столбцов с датами этого формата /Date(950842800000)/, /Date(1000436400000)/, ...

Проблема в том, что одна из этих дат имеет 12 цифр, а остальные 13 цифр. Этот с 13 цифрами преобразуется нормально, а с 12 есть проблема. Как я конвертирую

df["Data"] = df["Date"].apply(lambda x: datetime.fromtimestamp(int(x[6:-2][:10])) if len(x) > 12 else datetime.fromtimestamp(int(x[6:-2][:11])))

не работает для 12 цифр. Спасибо за помощь.

1 Ответ

0 голосов
/ 08 января 2019

Short:

lambda x: datetime.fromtimestamp(int(x[6:-2][:-3]))

Long:

Если у вас есть такие входные данные:

"/Date(950842800000)/",
"/Date(1000436400000)/"

Чем несколько модификаций приведут к корректной работе скрипта:

from datetime import datetime

dates = [
    "/Date(950842800000)/",
    "/Date(1000436400000)/"
]


for d in dates:
    l = lambda x: datetime.fromtimestamp(int(x[6:-2][:9])) if len(x) < 21 else datetime.fromtimestamp(
                int(x[6:-2][:10]))
    print(l(d))

продукты:

2000-02-18 04:00:00
2001-09-14 05:00:00

что вы ожидаете.

Но тогда мы можем подумать о простоте, вы можете просто использовать:

from datetime import datetime

dates = [
    "/Date(950842800000)/",
    "/Date(1000436400000)/"
]


for d in dates:
    l = lambda x: datetime.fromtimestamp(int(x[6:-2][:-3]))
    print(l(d))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...