Python “我一直收到”;名称错误:名称';用户名';“未定义”;错误
我很难通过python 2.7.11登录到在线帐户。我花了很多时间试图找出答案,并且一遍又一遍地阅读我的简短代码。如果有人能帮我,我将是你卑微的仆人 我的代码是:Python “我一直收到”;名称错误:名称';用户名';“未定义”;错误,python,api,post,python-requests,Python,Api,Post,Python Requests,我很难通过python 2.7.11登录到在线帐户。我花了很多时间试图找出答案,并且一遍又一遍地阅读我的简短代码。如果有人能帮我,我将是你卑微的仆人 我的代码是: import requests with requests.Session() as c: url = "https://www.matchbook.com/bpapi/rest/security/session/" login_data = { username: "Marcel",
import requests
with requests.Session() as c:
url = "https://www.matchbook.com/bpapi/rest/security/session/"
login_data = {
username: "Marcel",
password: "*******"
}
c.post(url,data = login_data)
page = c.get("https://www.matchbook.com/bpapi/rest/security/session/")
print page.content
我得到的错误是:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
NameError: name 'username' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第4行,在
名称错误:未定义名称“username”
我还尝试将用户名和密码变量定义为变量,并将用户名和密码密钥以倒逗号形式放入字典中
我得到的答复是:
<Response [415]>
{"errors":[{"messages":["Please login to continue"]}]}
{“错误”:[{“消息”:[“请登录以继续”]}
请帮忙 你的意思可能是:
login_data = {
"username": "Marcel",
"password": "*******"
}
您要做的是查找一个变量username
,并将其值用作键。由于您没有用户名
变量,因此您会得到名称错误
,您的意思可能是:
login_data = {
"username": "Marcel",
"password": "*******"
}
您要做的是查找一个变量username
,并将其值用作键。由于您没有用户名
变量,因此在c.post(url,data=login\u data)
中将data
更改为json
,因为数据需要进行json编码,并且您所采用的方式是表单编码
对于较旧版本的请求
,请在c.post(url,data=login\u data)
中使用data=json.dumps(login\u data),将数据
更改为json
,因为数据需要进行json编码,并且您所采用的方式是表单编码
对于较旧版本的请求
,请使用data=json.dumps(login\u data)
Jup,我已经这样做了!这是我问题的第二部分:)@MarcelHattingh——通常,您需要在下一个请求中使用登录响应的某些部分。我不知道具体的API,但它通常涉及到设置一些头(或者可能是cookie——尽管请求。Session
可能会为您处理…)和一个可以从初始登录响应中检索的值。非常感谢您的帮助,但是Alex下面的响应起了作用。所以我似乎不需要标题或cookies!也非常感谢!:)@MarcelHattingh——它可能正在使用cookies,会话正在为您处理它。如果是他的答案帮助你解决了问题,你也许应该接受。朱普,我已经做到了!这是我问题的第二部分:)@MarcelHattingh——通常,您需要在下一个请求中使用登录响应的某些部分。我不知道具体的API,但它通常涉及到设置一些头(或者可能是cookie——尽管请求。Session
可能会为您处理…)和一个可以从初始登录响应中检索的值。非常感谢您的帮助,但是Alex下面的响应起了作用。所以我似乎不需要标题或cookies!也非常感谢!:)@MarcelHattingh——它可能正在使用cookies,会话正在为您处理它。如果是他的答案帮助你解决了问题,你可能应该接受他的答案。亚历克斯·霍尔。你没有让我开心。你让我过了一周。希望你有最好的一天:)什么,它起作用了。亚历克斯·霍尔。你没有让我开心。你让我过了一周。希望你有最好的一天:)