51Testing软件测试论坛

标题: python如何获取reponse中的某个参数的值 [打印本页]

作者: ririval    时间: 2018-5-4 21:09
标题: python如何获取reponse中的某个参数的值
(注:用到了grinder)
def x中定义 用res=request.POST('/api/bidder/huangli/adCall',data,header).getText().encode('utf-8')得到如下
{"code":0,"msg":null,"ads":{"ad_id":"10455","type":2,"title":"ttttt","desc":"qqqq","native_imgs":["http://pgdt.gtimg.cn/gdt/0/DAAAAUsAEsADIAAIBa2Yr0DsqOB4nV.jpg/0?ck=b9b000d2c9deed8d13caceff5b4865b6"],"click_action":1,"link":"http://www.zhongan.io","close_control":1,"exposure_tracking":["http://xtest-tracking.zhongan.io/track/impress?cni=102&ari=10186&aci=10000005002&cpi=10197&adi=10455&api=1021&bt=1&p=1200000&ip=116.226.210.17&rpi=null"],"click_tracking":["http://xtest-tracking.zhongan.io/track/click?cni=102&ari=10186&aci=10000005002&cpi=10197&adi=10455&api=1021&bt=1&p=1200000&ip=116.226.210.17&rpi=null"]}}
目前想要某个参数,比如click_tracking的值,可是不知道怎么拿
result=self.x()
目前思路如下:
1.res是个dict ,直接取
#         for  k,v in result.item():#             print(k+':'+ str(v))
无返回,略过
2.res是个str,先转成list,再由list转为dict
然而在第一步转成list时就不对了

        X=list(result)
        print X



变成了令人抓狂的一大串,如下
['{', '"', 'c', 'o', 'd', 'e', '"', ':', '0', ',', '"', 'm', 's', 'g', '"', ':', 'n', 'u', 'l', 'l', ',', '"', 'a', 'd', 's', '"', ':', '{', '"', 'a', 'd', '_', 'i', 'd', '"', ':', '"', '1', '0', '4', '5', '5', '"', ',', '"', 't', 'y', 'p', 'e', '"', ':', '2', ',', '"', 't', 'i', 't', 'l', 'e', '"', ':', '"', 't', 't', 't', 't', 't', '"', ',', '"', 'd', 'e', 's', 'c', '"', ':', '"', 'q', 'q', 'q', 'q', '"', ',', '"', 'n', 'a', 't', 'i', 'v', 'e', '_', 'i', 'm', 'g', 's', '"', ':', '[', '"', 'h', 't', 't', 'p', ':', '/', '/', 'p', 'g', 'd', 't', '.', 'g', 't', 'i', 'm', 'g', '.', 'c', 'n', '/', 'g', 'd', 't', '/', '0', '/', 'D', 'A', 'A', 'A', 'A', 'U', 's', 'A', 'E', 's', 'A', 'D', 'I', 'A', 'A', 'I', 'B', 'a', '2', 'Y', 'r', '0', 'D', 's', 'q', 'O', 'B', '4', 'n', 'V', '.', 'j', 'p', 'g', '/', '0', '?', 'c', 'k', '=', 'b', '9', 'b', '0', '0', '0', 'd', '2', 'c', '9', 'd', 'e', 'e', 'd', '8', 'd', '1', '3', 'c', 'a', 'c', 'e', 'f', 'f', '5', 'b', '4', '8', '6', '5', 'b', '6', '"', ']', ',', '"', 'c', 'l', 'i', 'c', 'k', '_', 'a', 'c', 't', 'i', 'o', 'n', '"', ':', '1', ',', '"', 'l', 'i', 'n', 'k', '"', ':', '"', 'h', 't', 't', 'p', ':', '/', '/', 'w', 'w', 'w', '.', 'z', 'h', 'o', 'n', 'g', 'a', 'n', '.', 'i', 'o', '"', ',', '"', 'c', 'l', 'o', 's', 'e', '_', 'c', 'o', 'n', 't', 'r', 'o', 'l', '"', ':', '1', ',', '"', 'e', 'x', 'p', 'o', 's', 'u', 'r', 'e', '_', 't', 'r', 'a', 'c', 'k', 'i', 'n', 'g', '"', ':', '[', '"', 'h', 't', 't', 'p', ':', '/', '/', 'x', 't', 'e', 's', 't', '-', 't', 'r', 'a', 'c', 'k', 'i', 'n', 'g', '.', 'z', 'h', 'o', 'n', 'g', 'a', 'n', '.', 'i', 'o', '/', 't', 'r', 'a', 'c', 'k', '/', 'i', 'm', 'p', 'r', 'e', 's', 's', '?', 'c', 'n', 'i', '=', '1', '0', '2', '&', 'a', 'r', 'i', '=', '1', '0', '1', '8', '6', '&', 'a', 'c', 'i', '=', '1', '0', '0', '0', '0', '0', '0', '5', '0', '0', '2', '&', 'c', 'p', 'i', '=', '1', '0', '1', '9', '7', '&', 'a', 'd', 'i', '=', '1', '0', '4', '5', '5', '&', 'a', 'p', 'i', '=', '1', '0', '2', '1', '&', 'b', 't', '=', '1', '&', 'p', '=', '1', '2', '0', '0', '0', '0', '0', '&', 'i', 'p', '=', '1', '1', '6', '.', '2', '2', '6', '.', '2', '1', '0', '.', '1', '7', '&', 'r', 'p', 'i', '=', 'n', 'u', 'l', 'l', '"', ']', ',', '"', 'c', 'l', 'i', 'c', 'k', '_', 't', 'r', 'a', 'c', 'k', 'i', 'n', 'g', '"', ':', '[', '"', 'h', 't', 't', 'p', ':', '/', '/', 'x', 't', 'e', 's', 't', '-', 't', 'r', 'a', 'c', 'k', 'i', 'n', 'g', '.', 'z', 'h', 'o', 'n', 'g', 'a', 'n', '.', 'i', 'o', '/', 't', 'r', 'a', 'c', 'k', '/', 'c', 'l', 'i', 'c', 'k', '?', 'c', 'n', 'i', '=', '1', '0', '2', '&', 'a', 'r', 'i', '=', '1', '0', '1', '8', '6', '&', 'a', 'c', 'i', '=', '1', '0', '0', '0', '0', '0', '0', '5', '0', '0', '2', '&', 'c', 'p', 'i', '=', '1', '0', '1', '9', '7', '&', 'a', 'd', 'i', '=', '1', '0', '4', '5', '5', '&', 'a', 'p', 'i', '=', '1', '0', '2', '1', '&', 'b', 't', '=', '1', '&', 'p', '=', '1', '2', '0', '0', '0', '0', '0', '&', 'i', 'p', '=', '1', '1', '6', '.', '2', '2', '6', '.', '2', '1', '0', '.', '1', '7', '&', 'r', 'p', 'i', '=', 'n', 'u', 'l', 'l', '"', ']', '}', '}']
请问有没有大神知道怎么解决
如果解决了,请私m我,我给大神定个奶茶喝喝





作者: linglvchao    时间: 2018-5-4 21:09
class getvales():
    def getdict(dict1, values):
        global values1,va #定义全局变量
        values1 = values
        for k, v in dict1.items(): #把字典的key和values变成数组
            if k == values:
                va = v

            elif list is type(v): #判断类型是不是list
                getvales.getlsit(v)

            elif type(v) is dict:
                getvales.getdict(v, values1)

            else:
                print(str(k) + ":----" + str(v))

        return va

    def getlsit(list1):
        for i in list1:
            if list is type(i):
                getvales.getlsit(i)

            elif dict is type(i):
                getvales.getdict(i, values1)
            else:
                print(list1)


if __name__ == "__main__":
    dict1 = {'result': {'content': [
        {'a': '4XXXXXXX00', 'b': 100.0, '
        'b': 1}}
    abc = getvales.getdict(dict1, "waybillId")
    print(abc)
作者: static_    时间: 2018-5-21 10:14
看你response的格式,应该是json。
试试 json.loads()




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2