我有一个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?
您需要传递一个对象钩子。从documentation:
像这样:
如果还想处理时区,则必须使用dateutil而不是strptime。
到目前为止我的解决方案是:
有关使用对象挂钩的进一步参考:JSON encoder and decoder
在我的例子中,json字符串来自对REST API的GET请求。此解决方案允许我透明地“获取正确的日期”,而不必强制客户机和用户将诸如
__date__
之类的前缀硬编码到JSON中,只要输入字符串符合日期格式,即:regex模式可能需要进一步改进
PS:如果您想知道,json_字符串是一个MongoDB/PyMongo查询。
我将按照Nicola建议的那样做两个更改:
dateutil.parser
而不是datetime.datetime.strptime
except:
或代码:
相关问题 更多 >
编程相关推荐