Python搜索日期的JSON值
好的,我正在寻找关于梳理json数据的最佳方法的建议和建议,以查找今天的日期/时间并返回正确的值 以下是json数据的示例:Python搜索日期的JSON值,python,json,Python,Json,好的,我正在寻找关于梳理json数据的最佳方法的建议和建议,以查找今天的日期/时间并返回正确的值 以下是json数据的示例: [ { "startDateTime": "2018-04-11T14:17:00-05:00", "endDateTime": "2018-04-11T14:18:00-05:00", "oncallMember": [ "username1" ], "shi
[
{
"startDateTime": "2018-04-11T14:17:00-05:00",
"endDateTime": "2018-04-11T14:18:00-05:00",
"oncallMember": [
"username1"
],
"shiftType": "historical"
},
{
"startDateTime": "2018-04-11T14:18:00-05:00",
"endDateTime": "2018-04-16T08:00:00-05:00",
"oncallMember": [
"username2"
],
"shiftType": null
},
{
"startDateTime": "2018-04-16T08:00:00-05:00",
"endDateTime": "2018-04-23T08:00:00-05:00",
"oncallMember": [
"username1"
],
"shiftType": null
},
{
"startDateTime": "2018-04-23T08:00:00-05:00",
"endDateTime": "2018-04-30T08:00:00-05:00",
"oncallMember": [
"username2"
],
"shiftType": null
},
......continues on for the year
开始/结束日期设置为成员之间的每周轮换,但是,当设置或更改例外情况时,开始/结束日期可以每天或任何其他时间量变化。我想做的是检查今天的日期并找到当前的“oncallMember”。我不知道如何在今天日期的开始时间和结束时间之间进行搜索
非常感谢您的帮助。模块箭头可能会有所帮助。
首先,获取今天的时间戳范围
import arrow
today = arrow.now()
(day_start,day_end) = today.span('day')
day_start_timestamp = day_start.timestamp
day_end_timestamp = day_end.timestamp
然后你需要将细节数据解析成时间戳,但是你的原始数据看起来像是一段时间的持续时间,比如“2018-04-16T08:00:00-05:00”,也许你需要像“2018-04-16T08:00:00”那样分割一部分,然后使用箭头将其解析成时间戳,比如
raw = "2018-04-16T08:00:00"
FORMAT = "YYYY-MM-DDTHH:mm:SS"
obj = arrow.get(raw,FORMAT)
obj_ts = obj.timestamp
然后,您需要判断对象是否在日期开始时间戳和日期结束时间戳之间
但是如果您需要代码运行数天,则需要每天更改时间戳范围json
和datetime
库
使用json
库通过json读取json。加载并将其转换为字典
对于str
到datetime
的转换,使用datetime
和dateutil.parser.parse
获得日期时间后,对今天比较的开始-结束日期进行进一步编码,并返回oncallMember
到目前为止您尝试了什么?
import json
from dateutil.parser import parse
from datetime import datetime
dict_ = json.loads(json_str)
# json str is the json you mentioned
startDate = dict_[0]['startDateTime']
# '2018-04-11T14:17:00-05:00'
date = parse(startDate)
# datetime.datetime(2018, 4, 11, 14, 17, tzinfo=tzoffset(None, -18000))