如何从POST请求返回的JSON响应中提取accessToken值?
提取登录响应中的accessToken字段
嘿,我来帮你搞定这个accessToken提取的问题!其实只需要把返回的响应文本解析成Python字典,再逐层访问对应的键就能拿到目标值,下面是修改后的完整代码,关键部分我都标出来了:
import requests import json from fake_useragent import UserAgent # Set Modules ua = UserAgent() url = 'site' # Read TXT accounts = 'accounts\\accounts.txt' with open(accounts) as line: login = line.readline() line = login.split(",") cnt = 1 email = line[0] password = line[1] # Login head = { '.......': '.........', } data = { .......... } test = requests.post(url, json=data, headers=head) # 直接传json参数,无需手动调用json.dumps() if test.status_code == 200: print('Logged!') # 将响应文本解析为Python字典 response_json = test.json() # 提取外层的accessToken(对应你提供的JSON结构:data -> loginWithEmail -> accessToken) target_access_token = response_json['data']['loginWithEmail']['accessToken'] print(f"提取到的accessToken: {target_access_token}") # 如果需要提取用户私有信息里的另一个accessToken,用下面这行 # private_access_token = response_json['data']['loginWithEmail']['me']['private']['accessToken'] # print(f"私有信息中的accessToken: {private_access_token}") else: print('Error')
关键细节说明:
requests.post支持直接传入json参数,不用手动做序列化,这样代码更简洁也能避免格式错误;test.json()方法会自动把响应的JSON文本转换成Python字典,让我们可以通过键路径直接取值;- 你的JSON响应里有两个accessToken字段,分别在
loginWithEmail根节点和me.private子节点下,代码里我都给出了提取方式,你可以根据需求选择。
内容的提问来源于stack exchange,提问作者DonCorleone
相关产品推荐
相关产品推荐

