Запросы Python.Неправильное декодирование в формате Json()

#python

#python

Вопрос:

Я пытаюсь получить и декодировать данные JSON из API Roblox. Если я введу ссылку, которую он генерирует, в свою поисковую систему, данные JSON, которые он возвращает, будут:

 {
"id": 5214199,
"name": "Fruso",
"description": ""Blended with Delight"nnEstablished October 2019, Fruso's main objective is to bring something exclusive and breathtaking to Roblox. With modern and distinctive technology, Fruso will give customers a remarkable experience. Anyone can join Fruso's sumptuous community to help Fruso grow to become one of the finest in the juice industry. nnFruso's social media links are located on the "Social Links" tab.",
"owner": {
    "buildersClubMembershipType": "None",
    "userId": 581028621,
    "username": "Curtracus",
    "displayName": "Curtracus"
},
"shout": {
    "body": "If you’re enjoying your time here, why not invite your friends? You can join Fruso’s Community Support Server to become the first to get notified when something new happens!",
    "poster": {
        "buildersClubMembershipType": "None",
        "userId": 581028621,
        "username": "Curtracus",
        "displayName": "Curtracus"
    },
    "created": "2020-07-08T12:17:33.607Z",
    "updated": "2020-09-09T06:24:12.66Z"
},
"memberCount": 30,
"isBuildersClubOnly": false,
"publicEntryAllowed": true
}
  

Однако, если я попытаюсь декодировать его на python, я получу это:

 {
"id": 5214199,
"name": "Fruso",
"description": ""Blended with Delight"nnEstablished October 2019, Fruso's main objective is to bring something exclusive and breathtaking to Roblox. With modern and distinctive technology, Fruso will give customers a remarkable experience. Anyone can join Fruso's sumptuous community to help Fruso grow to become one of the finest in the juice industry. nnFruso's social media links are located on the "Social Links" tab.",
"owner": {
    "buildersClubMembershipType": "None",
    "userId": 581028621,
    "username": "Curtracus",
    "displayName": "Curtracus"
},
"shout": None,
"memberCount": 30,
"isBuildersClubOnly": False,
"publicEntryAllowed": True
}
  

Сегмент моего кода python, обрабатывающий это:

 data = requests.get('https://groups.roblox.com/v1/groups/5214199').json()
time.sleep(5)
body = data['shout']['body']
username = data['shout']['poster']['username']
  

Я попробовал это с другим идентификатором группы Roblox (изменение ‘https://groups.roblox.com/v1/groups/5214199 ‘ to ‘https://groups.roblox.com/v1/groups/3326850 ‘) и это сработало так, как задумывалось. Кто-нибудь может мне помочь с этим?

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

1. Не могли бы вы уточнить, что вы подразумеваете под «введите ссылку, которую он генерирует, в мою поисковую систему»? Вывод Python, который вы показываете, точно такой же, как и то, что я получаю в браузере, если вы получаете больше данных другим методом, я должен был бы предположить, что URL-адрес как-то отличается.

2. Возможно, это было раньше, но теперь в json URL возвращается «shout» null .

3. Я не думаю, что переменный фактор / неустойчивость — это декодирование requests.json(), это то, что возвращает веб-сайт. Докажите это, а) отслеживая сообщения, поступающие в / из вашего приложения, используя, например, Telerik Fiddler, и б) записывая необработанные полученные данные в файл, а также то, что вы называете ошибочно декодированными данными.

Ответ №1:

В настройках группы Roblox было указано, что не члены группы не могут просматривать shout. Исправлено путем обновления этого параметра.