извлечь дату и время из словаря в python - PullRequest
0 голосов
/ 06 августа 2020

Я получил из запроса API словарь со многими ключ: значение, есть один, который включает формат даты и времени. Упрощенный словарь:

d = {'_date': datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600))}

желаемый результат d = {'_date': '2020-08-05 08:47:25' } в переменной для последующего использования.

После импорта datetime и tzoffset from dateutil.tz результат можно напечатать с print(datetime.datetime(2020, 8, 4, 4, 10, 12, tzinfo=tzoffset(None, -21600)).strftime('%Y-%m-%d %H:%m'))

То, что я пытался сделать, - это сохранить в переменной, скажем v= d['_date'], но оно сохраняет полное выражение в виде строки и не оценивает выражение.

Это правильный способ получить dict, оцените его и сохраните в переменной v, я имел в виду print(v) -> 2020-08-05 8:47. Тест здесь:

Python 3.8.3 (default, Jul  2 2020, 16:21:59) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> from dateutil.tz import tzoffset
>>> d = {'_date': datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600))}
>>> d
{'_date': datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600))}
>>> v = d['_date']
>>> v
datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600))
>>> print(datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600)))
2020-08-05 08:47:25-06:00
>>> 

заранее спасибо

1 Ответ

0 голосов
/ 06 августа 2020

Вам нужно избавиться от смещения, просто используйте:

d = {'_date': datetime.datetime(2020, 8, 5, 8, 47, 25, tzinfo=tzoffset(None, -21600))}
print  d['_date'].replace(tzinfo=None)
>>>2020-08-05 08:47:25
...