【发布时间】:2020-11-26 08:14:50
【问题描述】:
我从 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
>>>
提前致谢
【问题讨论】:
-
尝试放一些代码,这样错误可以重现。
-
您说您有上面定义的
d并尝试了v = d['_date']- 但如果您实际运行该代码,v包含一个日期时间。所以不清楚为什么你认为它包含一个字符串,除非你提供可以证明问题的工作代码。 -
我编辑了问题并添加了运行它的代码
-
v = d['_date'].replace(tzinfo=None).isoformat(' ')? -
然后只需执行
d['_date'] = d['_date'].replace(tzinfo=None).isoformat(' ')来修改现有的d或创建一个新的,例如作为d_new = {'_date': d['_date'].replace(tzinfo=None).isoformat(' ')}。
标签: python datetime datetime-format python-datetime