组装数据发出请求并解析返回json

打开Fiddler程序,正常使用浏览器或企业微信,访问对应网址。找到对应请求URL,参照URL及请求参数,后使用程序组装请求头、请求数据。

# -*- coding: utf-8 -*-
"""
调取配置文件和屏幕分辨率的代码
"""
import json
import datetime
from common import urlRequest
from common import log_tools
from common import unixTimeConvert
from datetime import datetime
from timeDict import timeDict

VERSION = "1.1.1"


def main():
    """
    主函数
    """
    log_tools.log('info', '程序版本号:{}'.format(VERSION))
    sessionid = "o5ma7yxvl2zym0n87u0syflalw3wlgis"

    headers = {
        'Accept': "application/json, text/plain, */*",
        'Accept-Language': "zh-CN",
        'Connection': "keep-alive",
        'Host': "xxxx.com.cn:18080",
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 wxwork/2.7.0 (MicroMessenger/6.2) WindowsWechat QBCore/3.53.987.400 QQBrowser/9.0.2524.400",
        'Referer': "http://xxxxx.com.cn:18080/pro/m/",
        'Accept-Encoding': "gzip, deflate",
        'Cookie': "sid={}".format(sessionid)
    }
    
    
    #print(headers)
    #获取当前时间
    date = datetime.now()
    #根据当前时间构建开始时间字符
    start_time_datestr = date.strftime('%Y-%m') + "-01 00:00:01"
    #根据当前时间构建结束时间key去查询结束时间字典
    timeDictKey = date.strftime('%m') + "_end" 
    #根据结束时间key得到结束时间字符
    end_time_datestr = timeDict.get(timeDictKey)
    
    #print(start_time_datestr)
    #print(end_time_datestr)
    #print(datetime.now())
    #将时间字符转换成datetime类型
    start_time_date = datetime.strptime(start_time_datestr, '%Y-%m-%d %H:%M:%S')
    end_time_date = datetime.strptime(end_time_datestr, '%Y-%m-%d %H:%M:%S')
    #将float时间戳去掉小数后转换成字符串参数
    start_time_date_parameter = str(int(unixTimeConvert.get_convertToUnixtime(start_time_date)))
    end_time_date_parameter = str(int(unixTimeConvert.get_convertToUnixtime(end_time_date))) 
    #将时间参数添加到url中
    url = 'http://xxxxx.com.cn:18080/api/pro/checkin/detail/findByUserId?endtime={}059&starttime={}000&userid='.format(end_time_date_parameter, start_time_date_parameter)
    #print(url)
    #返回是bytes
    query_data = urlRequest.get_json(url, headers)
    #print(type(query_data))
    #将bytes转换成str
    data_list_str = str(query_data, 'utf-8')
    #print(data_list_str)
    #获取str中的list
    date_list_json = json.loads(data_list_str)['data']['data']
    #print((date_list_json))
    overtime = False;
    for j in range(len(date_list_json)):
        #list中
        if int(date_list_json[j]['day_status']['day_type']) == 1 or int(date_list_json[j]['day_status']['day_type']) == 2:
            if date_list_json[j]['down_time'] != "":
                if int(date_list_json[j]['down_time'].split(":")[0]) - int(date_list_json[j]['up_time'].split(":")[0]) >= 11:
                    overtime = True
                    print("当月加班换休 "  + date_list_json[j]['date'] + "     " + date_list_json[j]['up_time'] + "至" + date_list_json[j]['down_time'])
                if int(date_list_json[j]['down_time'].split(":")[0]) >= 21:
                    overtime = True
                    print("当月加班费 " + date_list_json[j]['date'] + "     " + date_list_json[j]['up_time'] + "至" + date_list_json[j]['down_time'])
               
    if overtime == False:
        print("当月没有加班费")
        #添加上\n是为自动换行
    


if __name__ == '__main__':
    main()

发布了43 篇原创文章 · 获赞 24 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/u012700515/article/details/102697066