tab切换页面+cookie跳过登录页面+json解析+tree Weight绑定json数据

来源:互联网 发布:暴雪 腾讯 知乎 编辑:程序博客网 时间:2024/06/01 13:24
def setupUi(self, Dialog):    #信号槽--切换tab事件    self.tabWidget.currentChanged.connect(self.tabChangedSlot)def tabChangedSlot(self, argTabIndex):    print(argTabIndex)    ###############################    if argTabIndex == 0:        print('0000000000000')        # 设置保存cookie的文件,同级目录下的cookie.txt        filename = 'cookie.txt'        # 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件        cookie = http.cookiejar.MozillaCookieJar(filename)        # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器        handler = urllib.request.HTTPCookieProcessor(cookie)        # 通过handler来构建opener        opener = urllib.request.build_opener(handler)        # 创建一个请求,原理同urllib2的urlopen        response = opener.open('http://********:8080/******/userLogin.action?username=***&password=***')        # 保存cookie到文件        cookie.save(ignore_discard=True, ignore_expires=True)        # 3)从文件中获取Cookie并访问        # 创建MozillaCookieJar实例对象        cookieRead = http.cookiejar.MozillaCookieJar()        # 从文件中读取cookie内容到变量        cookieRead.load('cookie.txt', ignore_discard=True, ignore_expires=True)        # 创建请求的request        req = urllib.request.Request('http://******:8080/*****/***.action')        # 利用urllib2的build_opener方法创建一个opener        opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookieRead))        result = opener.open(req)        d = result.read().decode('utf-8')  # 处理中文乱码        data = json.loads(d)  # 处理json字符串转化为字典        print(data)        # print(data['rtStatus'])        # 判断        # if data['rtStatus'] != true: return;        self.treeWidget.clear()        # 计算树的数量        num_rtData = 0;        for aa in data['rtData']:            num_rtData = num_rtData + 1;        # 省级节点        for i in range(num_rtData):            root = QTreeWidgetItem(self.treeWidget)            print(str(data["rtData"][i]["proviceInfo"]["area_name"]))            root.setText(0, str(data["rtData"][i]["proviceInfo"]["area_name"]))            # 市级节点            citylist_counter = 0;            for aa in data["rtData"][i]["cityList"]:                citylist_counter = citylist_counter + 1;            for j in range(citylist_counter):                child_city = QTreeWidgetItem(root)                print(str(data["rtData"][i]["cityList"][j]["cityInfo"]["area_name"]))                child_city.setText(0, str(data["rtData"][i]["cityList"][j]["cityInfo"]["area_name"]))                # 县级节点                arealist_counter = 0;                for aa in data["rtData"][i]["cityList"][j]["areaList"]:                    arealist_counter = arealist_counter + 1;                for k in range(arealist_counter):                    child_area = QTreeWidgetItem(child_city)                    print(str(data["rtData"][i]["cityList"][j]["areaList"][k]["areaInfo"]["area_name"]))                    child_area.setText(0, str(data["rtData"][i]["cityList"][j]["areaList"][k]["areaInfo"]["area_name"]))                    # 摄像头节点                    cameraList_counter = 0;                    # 判断                    if data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"] != None:                        for aa in data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"]:                            cameraList_counter = cameraList_counter + 1;                    print(cameraList_counter)                    if cameraList_counter != 0:                        for m in range(cameraList_counter):                            child_camera = QTreeWidgetItem(child_area)                            print(str(data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"][m]["name"]))                            child_camera.setText(0, str(data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"][m]["name"]))    ###############################    elif argTabIndex == 1:


原创粉丝点击