Why do I get error AttributeError: 'Response' object has no attribute 'get' in Python2.7?

41,463

Solution 1

Assuming you are using Requests library, the Response object does not have a get method.

The link given explains the attributes and methods of Response object.

If you want to read response, actual data you should be looking into either content, json or text.

Solution 2

The object isn't a dictionary, so you can't use get. You'll likely find what you need with either:

  • r.status_code
  • r.content
  • r.text
  • r.json()

To cite the example given on the requests page:

>>> import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'disk_usage': 368627, u'private_gists': 484, ...}
Share:
41,463
Dipanwita Das
Author by

Dipanwita Das

Developer,in quest of learning

Updated on August 26, 2020

Comments

  • Dipanwita Das
    Dipanwita Das over 3 years

    I am getting error AttributeError: 'Response' object has no attribute 'get' for the below code I have written

    def convert_json(self,bucket,userid,imgfilename,field,i):
    
        bucketName = bucket
        link = "users_"+str(userid)+'/'+imgfilename
        c = S3Connection(self.AWS_ACCESS_KEY_ID,self.AWS_ACCESS_KEY_SECRET)
        p = c.generate_url(expires_in=long(7200),method='GET',bucket=bucketName,key=link,query_auth=True,force_http=False)  
        post_url = "http://someurl"
        wrapper = {"filename":p}
        try:
            response = requests.post(post_url, json=wrapper)
            print response
            if response.status_code == 200:
                text = response.get('description', [])
            else:
                text = []
        except Exception:
            if response.status_code == 200:
                text = response.get('description', [])
            else:
                text = []
        return text