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

2020-04-06 21:41:40 +08:00
 creepycute
小白一枚 最近用 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’]的内容提取出来 总是报错 求教
1919 次点击
所在节点    问与答
9 条回复
also24
2020-04-06 21:46:12 +08:00
你这是有时候返回 JSON Array 有时候返回 JSON Object 的意思?

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

判断一下反序列化后的对象类型吧。
creepycute
2020-04-06 21:50:46 +08:00
@also24 好像是这样的 两种返回类型好像是随机的…能不能直接提取出 status 的状态呢?
Trim21
2020-04-06 21:54:39 +08:00
data = r.json()
if isinstance(data, list): pass
also24
2020-04-06 22:11:55 +08:00
@creepycute #2
判断一下反序列化后的对象类型然后根据不同的类型去取啊。
omph
2020-04-06 23:00:23 +08:00
用正则,很暴力
Enying
2020-04-06 23:50:06 +08:00
你那返回的是列表
noobsheldon
2020-04-07 01:02:50 +08:00
if 'success' in str(response) or "成功" in str(response): pass /doge
jugelizi
2020-04-07 07:09:25 +08:00
别想多 字符串包含来处理
renmu
2020-04-07 08:00:33 +08:00
三楼正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/659925

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX