When porting code from python2 to 3 I get this error when reading from URL
TypeError: initial_value must be str or None, not bytes.
import urllib import json import gzip from urllib.parse import urlencode from urllib.request import Request service_url = 'https://babelfy.io/v1/disambiguate' text = 'BabelNet is both a multilingual encyclopedic dictionary and a semantic network' lang = 'EN' Key = 'KEY' params = { 'text' : text, 'key' : Key, 'lang' :'EN' } url = service_url + '?' + urllib.urlencode(params) request = Request(url) request.add_header('Accept-encoding', 'gzip') response = urllib.request.urlopen(request) if response.info().get('Content-Encoding') == 'gzip': buf = StringIO(response.read()) f = gzip.GzipFile(fileobj=buf) data = json.loads(f.read())
An exception is thrown on this line.
buf = StringIO(response.read())
If I use python2, it works fine.
AMisra Jun 26 '15 at 4:33 2015-06-26 04:33
source share