Requests: Setting session cookies from cookiejar

Created on 17 Aug 2016  路  1Comment  路  Source: psf/requests

I'm trying to set the session cookies from a cookiejar, but having no joy. Here is my current code, cookies, and the error.

Surely there has to be a way to set the session cookies from a cookiejar?

def cookieLogin(cookies):

    with open(cookies) as f:
        cookies = requests.utils.cookiejar_from_dict(json.load(f)[0] )

    session = requests.session()
    session.cookies = cookies

    r = session.get('https://example.com')

Cookie example:

[
{
    "domain": ".example.com",
    "hostOnly": false,
    "httpOnly": false,
    "name": "act",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": true,
    "storeId": "0",
    "value": "875",
    "id": 1
},
{
    "domain": ".example.com",
    "expirationDate": 1479135421.720188,
    "hostOnly": false,
    "httpOnly": false,
    "name": "c_user",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": true,
    "session": false,
    "storeId": "0",
    "value": "109",
    "id": 2
},
...

Error:

Traceback (most recent call last):
  File "./cookieInviter.py", line 37, in <module>
    session = cookieLogin(args.cookies)
  File "/Users/jj/Projects/Jim/login.py", line 78, in cookieLogin
    r = session.get('https://example.com')

  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 487, in get
    return self.request('GET', url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 461, in request
    prep = self.prepare_request(req)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 394, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/Library/Python/2.7/site-packages/requests/models.py", line 297, in prepare
    self.prepare_cookies(cookies)
  File "/Library/Python/2.7/site-packages/requests/models.py", line 518, in prepare_cookies
    cookie_header = get_cookie_header(self._cookies, self)
  File "/Library/Python/2.7/site-packages/requests/cookies.py", line 136, in get_cookie_header
    jar.add_cookie_header(r)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/cookielib.py", line 1342, in add_cookie
_header
    attrs = self._cookie_attrs(cookies)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/cookielib.py", line 1301, in _cookie_at
trs
    self.non_word_re.search(cookie.value) and version > 0):
TypeError: expected string or buffer

CookieJar:

<RequestsCookieJar[<Cookie domain=.example.com for />, <Cookie hostOnly=False for />, <Cookie httpOnly=False for />,
<Cookie id=1 for />, <Cookie name=act for />, <Cookie path=/ for />, <Cookie sameSite=no_restriction for />, <Cookie s
ecure=False for />, <Cookie session=True for />, <Cookie storeId=0 for />, <Cookie value=... for />]>

Most helpful comment

No worries, solved it:

def cookieLogin(cookies):

    with open(cookies) as f:
        j = json.load(f)

    session = requests.Session()
    for cookie in j: session.cookies.set(cookie['name'], cookie['value'])

    r = session.get('https://example.com')

>All comments

No worries, solved it:

def cookieLogin(cookies):

    with open(cookies) as f:
        j = json.load(f)

    session = requests.Session()
    for cookie in j: session.cookies.set(cookie['name'], cookie['value'])

    r = session.get('https://example.com')
Was this page helpful?
0 / 5 - 0 ratings