Как исправить «JSONDecodeError: невозможно декодировать объект JSON: строка 1, столбец 0 (символ 0)»? - PullRequest
7 голосов
/ 30 июля 2010

Я пытаюсь получить результаты поиска в API Twitter для заданного хэштега, используя Python, но у меня возникла проблема с этой ошибкой «Не удалось декодировать объект 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

1 Ответ

8 голосов
/ 30 июля 2010

Было несколько проблем с вашим исходным кодом. Сначала вы никогда не читали контент из твиттера, просто открыли URL. Во-вторых, в URL вы установите обратный вызов (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
...