当我尝试运行下面的代码时,最初会收到以下错误:
Error:-the JSON object must be str, not 'bytes'
import urllib.request
import json
search = '230 boulder lane cottonwood az'
search = search.replace(' ','%20')
places_api_key = 'AIzaSyDou2Q9Doq2q2RWJWncglCIt0kwZ0jcR5c'
url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query='+search+'&key='+places_api_key
json_obj = urllib.request.urlopen(url)
data = json.load(json_obj)
for item in data ['results']:
print(item['formatted_address'])
print(item['types'])
在进行一些故障排除更改后, 例如:
json_obj = urllib.request.urlopen(url)
obj = json.load(json_obj)
data = json_obj .readall().decode('utf-8')
Error - 'HTTPResponse' object has no attribute 'decode'
我遇到了上述错误,我尝试过stackoverflow上的多个帖子,但似乎都不起作用。如果有人能让它工作,我会非常感激,我已经上传了整个可工作的代码。我不明白的是为什么其他人可以正常运行,而我却不行。 谢谢!
json_obj = urllib.request.urlopen(url).read().decode('UTF-8')
data = json.load(json_obj)
现在它报错:'str' object has no attribute 'decode'
- Uasthanajson.load()
而不是loads()
。更改后问题自动解决了。虽然我的工作已经完成,但我仍然无法理解loads()
相对于load
的神奇之处。谢谢! - rohit nairloads
是指“从字符串中加载”,而load
是指“从文件中加载”。 - anthony sottile