1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】 AttributeError("'str' object has no attribute 'read'")

2021-12-30 23:35:04

質問

Pythonのコードは以下の通りです。

def getEntries (self, sub):
    url = 'http://www.reddit.com/'
    if (sub != ''):
        url += 'r/' + sub
    
    request = urllib2.Request (url + 
        '.json', None, {'User-Agent' : 'Reddit desktop client by /user/RobinJ1995/'})
    response = urllib2.urlopen (request)
    jsonStr = response.read()
    
    return json.load(jsonStr)['data']['children']

実行すると、エラーが発生します。

Exception:  (<type 'exceptions.AttributeError'>,
AttributeError("'str' object has no attribute 'read'",), <traceback object at 0x1543ab8>)

解決方法は?

この問題は json.load のようなオブジェクトを渡す必要があります。 read 関数が定義されています。ですから json.load(response) または json.loads(response.read()) .