我在通过python 2.7.11登录在线帐户时遇到了极大的麻烦。我花了很多时间试图解决这个问题,并一遍又一遍地浏览我的短代码。如果有人能帮我解决这个问题,我将成为你谦卑的仆人。
我的代码是:
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
我还尝试将用户名和密码变量定义为变量,并将用户名和密码键放在字典中的引号中。
我得到了回复:
<Response [415]>
{"errors":[{"messages":["Please login to continue"]}]}
请帮忙!
答案 0 :(得分:2)
你可能意味着:
login_data = {
"username": "Marcel",
"password": "*******"
}
您所拥有的是尝试查找变量username
并使用它的值作为关键字。由于您没有username
变量,因此您获得NameError
。
答案 1 :(得分:1)
在c.post(url,data = login_data)
将data
更改为json
,因为数据需要进行JSON编码,而您完成的方式是表单编码。
对于旧版requests
,请使用data = json.dumps(login_data)
。