Python搜索D的JSON值

2024-10-02 00:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,所以我正在寻找关于梳理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”。我不知道如何在今天日期的开始和结束时间之间搜索。在

感谢任何帮助。在


Tags: 数据方法json示例时间null建议historical
2条回答

模块箭头可能有帮助。 首先,获取今天的时间戳范围

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”这样的片段,然后使用箭头将其解析为时间戳,比如

^{pr2}$

然后你需要判断目标是否在日开始时间戳和日结束时间戳之间

但是如果你需要你的代码运行几天,时间戳的范围需要每天改变

jsondatetime

使用json库通过json.loads读取json并将其转换为dictionary


对于str到{}的转换,使用datetime和{}


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)) 

一旦得到日期时间,对今天比较的开始-结束日期进行进一步编码并返回oncallMember

相关问题 更多 >

    热门问题