|
在将代码从python2移植到3的过程中,我读取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())
- The exception is thrown at this line
- buf = StringIO(response.read())
复制代码
|
|