You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:25:12