Python3 не удалось преобразовать str в dict или json

1
r = requests.get(http_get_url, headers=headers)
r = r.text
r = r.replace("true", "True")
z = json.loads(r)

однако, вместо загрузки json (или python dict), я получаю:

Traceback (most recent call last):
  File "/home/noir/PycharmProjects/Work_Projects/get_errors.py", line 21, in <module>
    get_errors(id)
  File "/home/noir/PycharmProjects/Work_Projects/get_errors.py", line 17, in get_errors
    z = json.loads(r)
  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 2 column 26 (char 28)

Результатом print(type(r)) является <class 'str'>

и вывод print(r) после преобразования "true" в "True":

{
    "HasItemsWithCount": True,
    "Collection": [

            {
            "GroupId" : "14",
            "Time" : "5/16/18, 5:02 PM",
            "File" : "[ESCAPE[]]",
            "Message" : "[ESCAPE[Client was restarted during backup, session may be incomplete.]]",
            "Count" : "3"
            },

    ]
}

Поэтому я не понимаю, почему правильно отформатированная строка r не может импортироваться в json.

Кроме того, если я возьму этот вывод и напишу его прямо в python с помощью copy/paste, тип переменной будет dict, показывая, что текст отформатирован правильно для dict в Python. Поэтому я не уверен, почему json.loads терпит неудачу.

Теги:
python-3.x
dictionary

1 ответ

1

Ваша замена находится в обратном порядке:

Вместо:

r = r.replace("true", "True")

Пытаться:

r = r.replace("True", "true")
  • 1
    У вас также есть дополнительный , в вашем примере
  • 0
    Извините, Истина изначально была истиной, но преобразована в Истину по линии, на которую вы ссылаетесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню