如何将dicts列表中的所有分区日期时间对象转换为UTC ISO格式



我有一个dict列表,我们称之为data_list:

[{"field1": 'blah blah', "field2": "2018-08-12T03:51:02.739000+00:00"},
{"field1": 'blah blah blah', "field2": "2018-10-11T03:51:02.739000+00:00"}]

我想将data_list中日期时间格式包含区域和毫秒的所有成员转换为纯UTC ISO(即2020-10-10 12:00:00(。我不知道哪些字段将包含这些日期时间对象。

做这件事的有效方法是什么?我也不确定从哪里开始应用编码。日期时间库有实现这一点的方法吗?

datetime是一种方法,如果您不知道哪个字段将是日期,则需要对它们进行全部解析。

from datetime import datetime
data_list = [{"field1": 'blah blah', "field2": "2018-08-12T03:51:02.739000+00:00"},
{"field1": 'blah blah blah', "field2": "2018-10-11T03:51:02.739000+00:00"}]
# With try/catch
def try_format_date(potential_date):
try:
return potential_date.strftime('%Y-%m-%d %H:%M:%S')
except AttributeError:
return potential_date

# with type checking
def try_format_date(potential_date):
if isinstance(potential_date, datetime):
return potential_date.strftime('%Y-%m-%d %H:%M:%S')

return potential_date
data_list = [
{key: try_format_date(value) for key, value in data.items()} 
for data in data_list
]
data_list
# [{'field1': 'blah blah', 'field2': '2018-08-12 03:51:02'},
# {'field1': 'blah blah blah', 'field2': '2018-10-11 03:51:02'}]

最新更新