Python报错TypeError: update_token()缺少必填参数'token'求助
问题解决
错误核心原因
你碰到的TypeError: update_token() missing 1 required positional argument: 'token',本质是调用update_token()时没传它要求的必填参数token——函数定义明确要求必须传入一个token值,但你调用时是空括号,没有传参。
除此之外,代码还有两个逻辑漏洞:
requests.post方法不存在token参数,应该把带认证信息的headers传进去- 你跳过了从创建用户接口获取token的步骤,直接调用
update_token,没有可用的token值
修正后的完整代码
import data import configuration import requests def post_new_user(body): response = requests.post(configuration.URL_SERVICE + configuration.CREATE_USER_PATH, json=body, headers=data.headers) # 请根据创建用户接口的实际返回结构调整token字段名,比如可能是"auth_token" return response.json()["token"] # 更新请求头的函数 def update_token(token): headers = data.headers.copy() headers["Authorization"] = f"Bearer {token}" return headers def post_new_client_kit(kit_body): # 1. 先调用创建用户接口获取token user_token = post_new_user({"username": "test_user", "password": "123456"}) # 替换为实际的用户请求体 # 2. 传入token生成带认证的请求头 auth_headers = update_token(user_token) # 3. 使用更新后的请求头发送请求 return requests.post(configuration.URL_SERVICE + configuration.KITS_PATH, json=kit_body, headers=auth_headers)
关键注意点
- 确认
post_new_user接口返回的JSON结构,调整response.json()["token"]里的字段名,确保能正确取到token - 调用
update_token时必须传入获取到的token值,否则无法生成合法的认证头 requests.post没有token参数,要把生成的auth_headers传给headers参数
内容的提问来源于stack exchange,提问作者Rogelio Haces Gil
相关产品推荐
相关产品推荐

