Python “我一直收到”;名称错误:名称';用户名';“未定义”;错误

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",

我很难通过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
回溯(最近一次呼叫最后一次):
文件“”,第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,会话正在为您处理它。如果是他的答案帮助你解决了问题,你可能应该接受他的答案。亚历克斯·霍尔。你没有让我开心。你让我过了一周。希望你有最好的一天:)什么,它起作用了。亚历克斯·霍尔。你没有让我开心。你让我过了一周。希望你有最好的一天:)