V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
creepycute
V2EX  ›  问与答

请问如何提取 Python Requests 返回内容中的字段

  •  
  •   creepycute · 2020-04-06 21:41:40 +08:00 · 2066 次点击
    这是一个创建于 1716 天前的主题,其中的信息可能已经有所发展或是发生改变。
    小白一枚 最近用 git 上接口弄了个学习通自动签到的 但是接口返回的数据有时候不一样
    [{"name":"test","date":"04-06 10:10","status":"success"}]
    {'name': 'test', 'date': '2020-04-06 20:59:51', 'status': '学生端-签到成功'}

    试过 json.loads 和 r.json 都没办法将 r[‘status’]的内容提取出来 总是报错 求教
    9 条回复    2020-04-07 08:00:33 +08:00
    also24
        1
    also24  
       2020-04-06 21:46:12 +08:00
    你这是有时候返回 JSON Array 有时候返回 JSON Object 的意思?

    Requests 的 response 对象自带 json() 方法可以做反序列化。

    判断一下反序列化后的对象类型吧。
    creepycute
        2
    creepycute  
    OP
       2020-04-06 21:50:46 +08:00
    @also24 好像是这样的 两种返回类型好像是随机的…能不能直接提取出 status 的状态呢?
    Trim21
        3
    Trim21  
       2020-04-06 21:54:39 +08:00
    data = r.json()
    if isinstance(data, list): pass
    also24
        4
    also24  
       2020-04-06 22:11:55 +08:00
    @creepycute #2
    判断一下反序列化后的对象类型然后根据不同的类型去取啊。
    omph
        5
    omph  
       2020-04-06 23:00:23 +08:00
    用正则,很暴力
    Enying
        6
    Enying  
       2020-04-06 23:50:06 +08:00 via Android
    你那返回的是列表
    noobsheldon
        7
    noobsheldon  
       2020-04-07 01:02:50 +08:00
    if 'success' in str(response) or "成功" in str(response): pass /doge
    jugelizi
        8
    jugelizi  
       2020-04-07 07:09:25 +08:00 via iPhone
    别想多 字符串包含来处理
    renmu
        9
    renmu  
       2020-04-07 08:00:33 +08:00 via Android
    三楼正解
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3385 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:11 · PVG 19:11 · LAX 03:11 · JFK 06:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.