Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在POST没有有效负载时面临问题(python代码)_Python_Api_Post - Fatal编程技术网

在POST没有有效负载时面临问题(python代码)

在POST没有有效负载时面临问题(python代码),python,api,post,Python,Api,Post,我的脚本调用的代码是(这是api.py中的代码) 现在我需要发布一个没有有效负载的请求,因为我需要发布的信息在url本身中。我尝试了以下组合,但失败了: 1) requests.post(url,auth,data=None) 他没有说: result = requests.post(api, auth, data=None) TypeError: post() got multiple values for keyword argument 'data' 2) requests.pos

我的脚本调用的代码是(这是api.py中的代码)

现在我需要发布一个没有有效负载的请求,因为我需要发布的信息在url本身中。我尝试了以下组合,但失败了:

1)
requests.post(url,auth,data=None)

他没有说:

result = requests.post(api, auth, data=None)
TypeError: post() got multiple values for keyword argument 'data'   
2)
requests.post(api,auth,data=payload)
其中payload是空的


请建议..

问题在于方法签名和您如何调用它之间不兼容

def post(url, data=None, **kwargs):
result = requests.post(api, auth, data=None)
首先,根据错误,它的保存假定
请求
是您编写的库(而不是Python请求模块),而不是类,否则您将得到完全不同的错误

您的
post
方法有两个参数,
url
data

您的调用有三个参数,python必须解压它们:变量
api
auth
,以及一个命名参数
data=None

Python将
api
分配给方法范围中的
url
变量,并将
auth
分配给
data
变量。这会在methods作用域中留下一个额外的名为
data
的变量,该变量现在正试图再次赋值

因此出现了错误:

post() got multiple values for keyword argument 'data'   

传递的auth param被函数作为数据接受。然后再次传递数据,作为关键字参数

result = requests.post(api, auth, data=None)
TypeError: post() got multiple values for keyword argument 'data'   
试试这个:

result = requests.post(api, auth=auth)
result = requests.post(api, auth=auth)