如何修复"JSONDecodeError:No JSON对象无法解码:第1行第0列(char 0)"?

use*_*372 7 python twitter json simplejson

我正在尝试使用Python获取给定主题标签的Twitter API搜索结果,但是我遇到了"无JSON对象可能被解码"的错误.我不得不在URL的末尾添加额外的%以防止字符串格式错误.这个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
Run Code Online (Sandbox Code Playgroud)

blc*_*llo 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
Run Code Online (Sandbox Code Playgroud)

  • 你是对的.实际的问题是`callback`参数,它导致Twitter返回`JSONP`,它不能被解析为JSON`.但是用于读取JSON的代码很好(它只是将类似文件的对象`f`直接传递给`simplejson.load()`函数,它接受类似文件的对象). (3认同)