Fixing requests session TypeError: __init__() got an unexpected keyword argument 'headers'

Problem:

You are trying to initialize a Python requests session using a custom set of HTTP headers like this:

requests_session_fix.py
s = requests.Session(headers={
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
})

but you only see this stacktrace:

example.txt
File "RequestsSession.py", line 30, in translate
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
TypeError: __init__() got an unexpected keyword argument 'headers'

Solution

You can’t use the headers=... argument in the requests.Session(...) constructor.

Use s.headers.update({...}) instead:

example.py
s = requests.Session()
s.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
})

 


Check out similar posts by category: Python