python报错: xxx takes 1 positional argument but 2 were given

解析: 这个错误就是 方法只需要传一个参数,但是你传了两个参数,第一个参数是self ,不用传数据,

错误代码:

  response_data = service.send_request(request_url, json.dumps(response_data,headers))

分析:
json.dumps 的源码:

def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
        allow_nan=True, cls=None, indent=None, separators=None,
        default=None, sort_keys=False, **kw):

从源码中看到,obj 后有个单独的,是命名关键字参数,表示后面的参数只接收指定参数名的参数,即 skipkeys = False, 而不能是任意的参数。
所以 json.dumps的无指定参数只能有1个。

参考:
https://blog.csdn.net/anthea_luo/article/details/101557246

原文地址:https://www.cnblogs.com/wanthune/p/11959844.html