我有一个Python 2代码:
import requests
import json
import Cookie
USERNAME = "<user_name>"
PASSWORD = "<password>"
BACKEND = "https://blahblah.com"
# login will take orgId, email and password and return auth cookie for the user
def login(email, password):
url = 'https://auth-v2.blahblah.com/auth/v1.0/login'
data = json.dumps({'email':email, 'password': password})
r = requests.post(url,data=data,allow_redirects=False)
cookieHeaders = filter(lambda x: x.lower()=='set-cookie',r.headers.keys())
if len(cookieHeaders)==0:
return None
bc = Cookie.BaseCookie(r.headers[cookieHeaders[0]])
sess = 'sess='+bc.values()[0].value
return sess
但是我不能正确地将其翻译成python3。在
我只需要从头中设置Cookie值,但是filter函数或lambda的工作方式与python2中的不同。在
看起来Python2中的filter()函数返回一个filter对象,然后len()检查和“bc=”行也失败。在
如何正确访问cookie值?在
python2中的行为与Python3中的行为略有不同。在
在Python 2中,以下操作很好:
这是因为
type(filter(lambda x: x>2, foo))
是list
。在而在python3中,您需要一个
^{pr2}$list
构造函数:实际上,在Python中,3
type(filter(lambda x: x>2, foo))
就是<class 'filter'>
。在尝试使用请求模块和请求。会话对象 Quick Start;Sessions
Refer this stackoverflow question for more detail
您可以尝试内置cookie功能:
将产生:
^{pr2}$→
^{3}$═══
→
═══
→
═══
→
相关问题 更多 >
编程相关推荐