Python 使用';通过';作为字典的关键词

Python 使用';通过';作为字典的关键词,python,python-3.x,Python,Python 3.x,我试图做一个相当基本的请求脚本,登录到一个网站,但我遇到了一个问题;该网站需要“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 =

我试图做一个相当基本的请求脚本,登录到一个网站,但我遇到了一个问题;该网站需要“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键吗?

因为
pass
是一个关键字,所以不能将其用作标识符。您需要为此使用dict文字:

login_data = {
    'user': USERNAME,
    'pass': PASSWORD,
    'jsok': '1',
    'dologin': 'Login',
}

简而言之,你不能用这种语法
pass
是python的保留关键字,例如
return

将任意对象设置为键的另一种方法是使用以下语法:

login_data={“user”:用户名,“pass”:密码,…}

这是更通用的,您可以使用任何东西作为键


{None:1,1:2,str:int}

pass
是PythonYeah中的一个关键字,我知道,但我尝试登录的网站使用pass作为其关键字这很有效,谢谢!很显然,我在11分钟内无法接受答案,但这肯定已经解决了。嗯。。。没什么。您可以使用任何可以散列为密钥的内容。所以<代码>{['list!']:“没有骰子,将产生TypeError”}避免问题的不是“它更通用”,而是字符串键被写成字符串,而不是关键字参数。