我一直收到" NameError:name' username'没有定义"错误

时间:2016-05-01 21:51:03

标签: 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",
        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"]}]}

请帮忙!

2 个答案:

答案 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)