Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python搜索日期的JSON值_Python_Json - Fatal编程技术网

Python搜索日期的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

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

非常感谢您的帮助。

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

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