Повышение JSON Ошибка декодирования Ожидаемое значение: строка 1, столбец 1 (символ 0) - PullRequest
0 голосов
/ 07 февраля 2020

Я создаю сайт, используя Django. Ниже мой код:

views.py:

for i in range(0,len(userdata)):
        json_hall = requests.get(
            "https://www.onebookingsystem.com/API/Admin/booking_list_id.php?id=%s" % userdata[i]['bookid'])
        r = json_hall.json()
        hall_data = json.loads(json_hall.text)
        id_data[i]['bookid'] = hall_data[0]['bookid']

Когда я запускаю, я получаю сообщение об ошибке, подобное этому.

File "D:\KarthikWorkSpace\Projects\Python\obs_admin\Application\obs_app\views.py", line 1968, in bookings_owner
hall_data = json.loads(json_hall.text)

raise JSONDecodeError("Expecting value", s, err.value) from None

json .decoder. JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Обычно это означает, что строка, которую вы пытаетесь декодировать, пуста, например:

>>> import json
>>> json.loads('')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Пожалуйста, убедитесь, что отправляемый вами запрос верен.

Вы можете напечатать или проверить response.text, чтобы подтвердить это.

0 голосов
/ 07 февраля 2020

При использовании requests метод .json() для объекта ответа уже дает вам объект Python (декодированный из буквального ответа)

Вам не нужно снова анализировать данные с json.loads. Кстати, вот еще Pythoni c способ перебора ваших данных:

for (idx, user) in enumerate(userdata):
    response = requests.get(
            "https://www.onebookingsystem.com/API/Admin/booking_list_id.php?id=%s" % user['bookid'])
    hall_data = response.json()
    id_data[idx]['bookid'] = hall_data[0]['bookid']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...