Ни один объект JSON не может быть декодирован на веб-сайт missingkids

#python #json

#python #json

Вопрос:

Я не уверен, почему я получаю эту ошибку. Существует decoder.py файл в моей папке python.

 import requests
import json
import common

session = requests.Session()
uri = "http://www.missingkids.com"
json_srv_uri = uri   "/missingkids/servlet/JSONDataServlet"
search_uri = "?action=publicSearch"
child_detail_uri = "?action=childDetail"
session.get(json_srv_uri   search_uri   "amp;searchLang=en_USamp;search=newamp;subjToSearch=childamp;missState=CAamp;missCountry=US") #Change missState=All for all states

response = session.get(json_srv_uri   search_uri   "amp;searchLang=en_USamp;goToPage=1")
dct = json.loads(response.text)
pgs = int(dct["totalPages"])
print("found {} pages".format(pgs))
missing_persons = {}
  

Комментарии:

1. Ну, этот URL, который вы пытаетесь открыть, равен 404…

2. @Aran-Fey иронично …

Ответ №1:

URL http://www.missingkids.com/missingkids/servlet / возвращает ошибку 404. Таким образом, нет данных JSON для запросов на возврат. Исправление URL-адреса таким образом, чтобы он указывал на действительное место назначения, позволит запросам возвращать содержимое страницы.

Чтобы выполнить поиск пропавшего дочернего элемента, зарегистрированного в базе данных этого веб-сайта, попробуйте этот URL: http://www.missingkids.com/gethelpnow/search

Ответ №2:

После каждого HTTP-вызова вам необходимо проверять код состояния.

Пример

 import requests

r = requests.get('my_url')
# status code 'OK' is very popular and its numeric value is 200
# note that there are other status codes as well
if r.status_code == requests.codes.ok:
    # do your thing
else:
   # we have a problem