上篇也提到了这个问题,现在挤点时间出来又研究了一下。Robot Framework 在操作的过程中是传的是String,我们在decode时需要从Json String中decode datetime。
JSON-DateTime
在Github发现有人做了这些,就直接拿出来用好了,使用说明请参考JSON-DateTime
基本使用
安装完成后,就可以直接用下边方式来调用:1
2
3
4>>> import simplejson as json
>>> a ='{"createdDate" : "Thu, 1 Mar 2012 10:00:49 UTC"}'
>>> json.loads(a)
{'createdDate': datetime.datetime(2012, 3, 1, 10, 0, 49)}说明
这种日期格式是它默认的格式,但是看起来和用起来都有点不太好,我们需要重新定义一个自己的格式,如下:1
2
3>>> a ='{"createdDate" : "2012-5-1 10:00:49"}'
>>> json.loads(a, datetime_format='%Y-%m-%d %H:%M:%S')
{'createdDate': datetime.datetime(2012, 5, 1, 10, 0, 49)}
RF集成
我们这里需要修改一下‘mongoquery.py’的引用,把import json
修改成import simplejson as json
。
还有就是默认日期格式的修改,我们可以在‘mongoquery.py’或‘jsondatetime.py’里修改,这里因为我们本来就对‘mongoquery.py’做了修改,所以统一也在这里修改了。1
recordJSON = json.loads(recordJSON, datetime_format='%Y-%m-%d %H:%M:%S')
- 引用
- 结果
1
2
3
4
5
6{
"_id" : 11,
"name" : "insert",
"type" : "calendar",
"createdDate" : ISODate("2012-02-03T10:00:49Z"),
}