好的,我正在寻找有关梳理json数据的最佳方法的建议和建议,以查找今天的日期/时间并返回正确的值。
以下是json数据的示例:
[
{
"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"。我不确定如何搜索今天的开始和结束时间。
感谢任何帮助。
答案 0 :(得分:0)
模块箭头可能会有所帮助。 首先,获取今天的时间戳范围
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
然后你需要判断 obj_ts 是否在day_start_timestamp和day_end_timestamp
之间的范围内但如果您需要运行数天的代码,则需要每天更改时间戳范围
答案 1 :(得分:0)
List<Task> x = new List<Task>();
foreach(var s in myCollectionOfObject)
{
// Note there is no await here. Just collection the Tasks
x.Add(s.DoSomethingAsync());
}
await Task.WhenAll(x);
和json
个库使用datetime
库按json
读取json并将其转换为json.loads
并且dictionary
到str
转换使用datetime
和datetime
dateutil.parser.parse
获得日期时间后,请进一步编码今天开始结束日期的比较并返回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))