Я пытался создать бота Discord, который давал бы мне информацию о вопросах, в которых пользователь, которого я ввожу, получил AC. Для этого я взял файл json из CF API и преобразовал его в словарь, чтобы получить доступ к ключу, который содержал эту информацию, я приложил формат полученного json. Проблема в том, что это дает мне ошибку в строке, где я получаю доступ к ключу, и другую ошибку, которую я не могу понять, я тоже прикрепляю ошибку. Кто-нибудь, пожалуйста, скажите мне, где я напортачил, потому что я действительно новичок в этой структуре, а также в python, я также прилагаю свой код ниже.
Код
import discord
import requests
import json
token = '(my_token)'
client = discord.Client()
@client.event
async def on_message(message):
if message.content.startswith("!stalk"):
handle = ""
words = message.content
for word in words[1:]:
handle += word
await message.channel.send(handle + ': (last correctly solved problem name) ')
link = "https://codeforces.com/api/user.status?handle="
link += handle
request_info = requests.get(link)
json_obj = dict(request_info.json())
last_correct_problems = []
for submissions in json_obj['result']:
if submissions['verdict'] == 'OK':
last_correct_problems.append(submissions['problem']['name'])
for problem in last_correct_problems:
await message.channel.send(problem + ', ')
client.run(token)
Ошибка
Игнорирование исключения в on_message
Traceback (последний вызов последний):
Файл "C: \ Users \ HP \ Anaconda3 \ envs \ balalalabot \ lib \ site-packages \ discord \ client.py", строка 312, в _run_event
await coro (* args, ** kwargs)
Файл «C: / Users / HP / Desktop / labsheets / new_stuff / discbalalabot / bot.py», строка 23 в on_message для отправки в json_obj ['result']:
KeyError: 'result'
Вывод в Discord
- nandini Сегодня в 14: 23
- ! Stalk prabhu4
- balalala BOT Сегодня в 14: 23
- stalk prabhu4: (последнее правильно решено название проблемы)
API Link вы можете обратиться к метод user.status на этой странице
JSON Получено
{"status":"OK",
"result":[{"id":88388369,
"contestId":702,
"creationTimeSeconds":1596059866,
"relativeTimeSeconds":2147483647,
"problem":{"contestId":702,
"index":"A",
"name":"Maximum Increase",
"type":"PROGRAMMING",
"rating":800,
"tags":["dp","greedy","implementation"]},
"author":{"contestId":702,
"members":[{"handle":"Prabhu4"}],
"participantType":"PRACTICE",
"ghost":false,"startTimeSeconds":1469804400},
"programmingLanguage":"GNU C++17",
"verdict":"OK",
"testset":"TESTS",
"passedTestCount":32,
"timeConsumedMillis":46,
"memoryConsumedBytes":3788800},
{"id":88388346,
"contestId":702,
"creationTimeSeconds":1596059822,
"relativeTimeSeconds":2147483647,
"problem":{"contestId":702,
"index":"A",
"name":"Maximum Increase",
"type":"PROGRAMMING",
"rating":800,
"tags":["dp","greedy","implementation"]},
"author":{"contestId":702,
"members":[{"handle":"Prabhu4"}],
"participantType":"PRACTICE",
"ghost":false,
"startTimeSeconds":1469804400},
"programmingLanguage":"GNU C++17",
"verdict":"WRONG_ANSWER",
"testset":"TESTS",
"passedTestCount":0,
"timeConsumedMillis":15,
"memoryConsumedBytes":3788800}]}