如何修复“JSONDecodeError: 无法解码的JSON对象:第1行第0列(字符0)”?

7 投票
1 回答
19685 浏览
提问于 2025-04-16 02:04

我正在用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

撰写回答