51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6757|回复: 2
打印 上一主题 下一主题

python如何获取reponse中的某个参数的值

[复制链接]
  • TA的每日心情

    2018-5-4 20:59
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-5-4 21:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    (注:用到了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我,我给大神定个奶茶喝喝




    最佳答案

    查看完整内容

    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 ...
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2016-4-5 09:13
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2018-5-4 21:09:38 | 只看该作者
    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)
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-12-22 13:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2018-5-21 10:14:54 | 只看该作者
    看你response的格式,应该是json。
    试试 json.loads()
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 08:36 , Processed in 0.072281 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表