[英]Unicode Decode Error for JSON in python
我正在尝试将GET请求发送到我知道使用python以JSON形式返回数据的URL。 但是,我在第21行不断收到Unicode解码错误:
Traceback (most recent call last):
File "MeetupQueryScript.py", line 21, in <module>
member = json.load(object)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 278, in load
**kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe7 in position 20: invalid continuation byte
有什么想法吗?
import urllib2
import json
key = '#########'
url = "https://api.meetup.com/2/groups?&sign=true&zip=78705&page=1&key=" + key + "&&sign=true"
object = urllib2.urlopen(url)
#print [method for method in dir(object) if callable(getattr(object, method))]
#print object.next()
groupList = json.load(object)["results"]
groupIDs = []
for group in groupList:
groupIDs.append(group["id"])
members = []
for id in groupIDs:
url = "https://api.meetup.com/2/members?&sign=true&group_id=" + str(id) + "&key=" + key
object = urllib2.urlopen(url)
member = json.load(object)
members.append(member)
print members
您从metup获得的数据是latin1编码的(打印'\\ xe7'.decode('latin1')结果为'ç')。 我用member = json.load(object,encoding='latin1')
尝试了您的代码,它起作用了。
我建议请求虽然,由于有一个更方便的接口吧:
import requests
url = "https://api.meetup.com/2/groups?&sign=true&zip=78705&page=1&key=" + key + "&&sign=true"
groupList = requests.get(url).json()["results"]
groupIDs = []
for group in groupList:
groupIDs.append(group["id"])
members = []
for id in groupIDs:
url = "https://api.meetup.com/2/members?&sign=true&group_id=" + str(id) + "&key=" + key
member = requests.get(url).json()
members.append(member)
print members
我建议不要在代码中隐藏object
。 另请参阅python样式指南 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.