我正在尝试制作一个相当基本的请求脚本,该脚本会登录到一个网站,但是我遇到了一个问题;网站需要'pass'键,但是每当我尝试使用这个python时都会抛出一个错误,说明语法无效。这是我的代码:
import requests
with requests.Session() as c:
url = 'www.a_url.com'
USERNAME = 'a username'
PASSWORD = 'a password'
c.get(url)
login_data = dict(user=USERNAME, pass=PASSWORD, jsok='1', dologin='Login')
c.post(url, data=login_data, headers={"Referer": 'www.a_referer.com'})
page = c.get('www.a_page.com')
print(page.content)
output = open('test.html','w')
output.write(str(page.content))
我给出的错误是:
login_data = dict(user=USERNAME, pass=PASSWORD, jsok='1', dologin='Login')
^
SyntaxError: invalid syntax
我知道如何强制python忽略'pass'并将其用作dict键吗?
答案 0 :(得分:10)
由于pass
是关键字,因此不能用作标识符。你需要使用dict-literal:
login_data = {
'user': USERNAME,
'pass': PASSWORD,
'jsok': '1',
'dologin': 'Login',
}
答案 1 :(得分:0)
简短的回答,你不能用那种语法来做。 pass
是python的保留关键字,例如return
。
将任意对象设置为键的另一种方法是使用以下语法:
login_data = {"user": USERNAME, "pass": PASSWORD, ...}
这是更通用的,您可以使用任何键作为键。
{None: 1, 1: 2, str: int}