为了账号安全,请及时绑定邮箱和手机立即绑定

json 响应中的访问字段

json 响应中的访问字段

当年话下 2023-01-04 11:02:03
我正在尝试从 API 请求中提取特定字段,稍后我会将其用于另一项任务。基本上需要自动执行此请求,以便我可以跟上远程机器的时间戳。我可以使用我创建的这个脚本获取 json 列表:from datetime import datetimefrom requests.auth import HTTPBasicAuthimport requestsimport jsonresponse = requests.get("https://$hostname/api/profiler/1.13/reporting/timestamps.json", verify=False, auth=HTTPBasicAuth("$username", "$password"))time = response.json()print(json.dumps(time, indent=4, sort_keys=True))这是回应:[    {        "data_resolution": "min",        "datasource": "TRAFFIC",        "end_time": 1591793520,        "start_time": 0    },    {        "data_resolution": "day",        "datasource": "TRAFFIC",        "end_time": 1591743600,        "start_time": 0    },    {        "data_resolution": "15mins",        "datasource": "SERVICE",        "end_time": 1591793100,        "start_time": 0    },    {        "data_resolution": "flow",        "datasource": "TRAFFIC",        "end_time": 1591793520,        "start_time": 0    },    {        "data_resolution": "5mins",        "datasource": "TRAFFIC",        "end_time": 1591793400,        "start_time": 0    },    {        "data_resolution": "6hours",        "datasource": "TRAFFIC",        "end_time": 1591786800,        "start_time": 0    },    {        "data_resolution": "hour",        "datasource": "TRAFFIC",        "end_time": 1591790400,        "start_time": 0    },    {        "data_resolution": "15mins",        "datasource": "TRAFFIC",        "end_time": 1591793100,        "start_time": 0    },    {        "data_resolution": "min",        "datasource": "FDS_TRAFFIC",        "end_time": 1591793520,        "start_time": 1587220140    },我需要提取这个确切的字段(特别是结束时间字段):{        "data_resolution": "flow",        "datasource": "TRAFFIC",        "end_time": 1591793520,        "start_time": 0    },我似乎无法提取该字段。
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

解决方案是遍历 json 响应:list;


后:time = response.json()


for entry in time:

    if entry.get('data_resolution') == 'flow':

        end_time = entry['end_time']


查看完整回答
反对 回复 2023-01-04
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

from datetime import datetime

from requests.auth import HTTPBasicAuth

import requests

import json


response = requests.get("https://10.65.170.112/api/profiler/1.13/reporting/timestamps.json", verify=False, auth=HTTPBasicAuth("admin", "admin"))


time = response.json()



**for t in time:

    end_time = (time[3]["end_time"])**



print(end_time)


查看完整回答
反对 回复 2023-01-04
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

试试这个:

[i['end_time'] for i in time if i['data_resolution']=='flow' and i['datasource']=='TRAFFIC']


查看完整回答
反对 回复 2023-01-04
  • 3 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号