如何修复“JSONDecodeError: 无法解码的JSON对象:第1行第0列(字符0)”?
我正在用Python获取Twitter API中某个特定标签的搜索结果,但遇到了一个问题,提示“No JSON对象无法解码”。为了避免字符串格式错误,我不得不在网址的末尾加上额外的%符号。这个JSON错误可能和这个额外的%有关吗,还是说是其他原因造成的?任何建议都非常感谢。
一段代码:
import simplejson
import urllib2
def search_twitter(quoted_search_term):
url = "http://search.twitter.com/search.json?callback=twitterSearch&q=%%23%s" % quoted_search_term
f = urllib2.urlopen(url)
json = simplejson.load(f)
return json
1 个回答
8
你的初始代码有几个问题。首先,你并没有从Twitter读取内容,只是打开了网址。其次,在网址中你设置了一个回调函数(twitterSearch)。回调函数的作用是把返回的json数据包裹在一个函数调用中,所以在这种情况下,它会变成twitterSearch()。这样做的好处是,如果你想要一个特定的函数来处理返回的结果,就可以使用这个回调函数。
import simplejson
import urllib2
def search_twitter(quoted_search_term):
url = "http://search.twitter.com/search.json?&q=%%23%s" % quoted_search_term
f = urllib2.urlopen(url)
content = f.read()
json = simplejson.loads(content)
return json