如何使用JSON.loads转换为Python日期时间对象?

我有一个JSON对象的字符串表示形式。

dumped_dict = '{"debug": false, "created_at": "2020-08-09T11:24:20"}'

当我使用此对象调用json.loads时;

json.loads(dumped_dict)

我懂了

{'created_at': '2020-08-09T11:24:20', 'debug': False}

这里没有错。但是,我想知道是否有一种方法可以将带有json.loads的上述对象转换为如下形式:

{'created_at': datetime.datetime(2020, 08, 09, 11, 24, 20), 'debug': False}

不久,我们能够在调用json.loads时将datetime字符串转换为实际的datetime.datetime对象吗?

回答:

到目前为止我的解决方案:

>>> json_string = '{"last_updated": {"$gte": "Thu, 1 Mar 2012 10:00:49 UTC"}}'

>>> dct = json.loads(json_string, object_hook=datetime_parser)

>>> dct

{u'last_updated': {u'$gte': datetime.datetime(2012, 3, 1, 10, 0, 49)}}

def datetime_parser(dct):

for k, v in dct.items():

if isinstance(v, basestring) and re.search("\ UTC", v):

try:

dct[k] = datetime.datetime.strptime(v, DATE_FORMAT)

except:

pass

return dct

有关使用object_hook的更多参考:JSON编码器和解码器

在我的情况下,json字符串来自GET请求到我的REST

API。此解决方案使我可以透明地“正确安排日期”,而不必强迫客户和用户使用像__date__JSON

这样的硬编码前缀,只要输入字符串符合DATE_FORMAT,即:

DATE_FORMAT = '%a, %d %b %Y %H:%M:%S UTC'

正则表达式模式可能应该进一步完善

PS:如果您想知道,json_string是MongoDB / PyMongo查询。

以上是 如何使用JSON.loads转换为Python日期时间对象? 的全部内容, 来源链接: utcz.com/qa/409432.html

回到顶部