codeforces apiの使用を試みます
codeforcesが提供するapiを使用して、ユーザーがどのような問題を解決したかを簡単に理解しました.
before you know
With Codeforces API you can get access to some of our data in machine-readable JSON format. To access the data you just send a HTTP-request to address https://codeforces.com/api/{methodName} only public data will be accessable via API Script
before you know
how to install requests module
要求モジュールの説明
REST api
python requests module
python requestsモジュールはhttpリクエストを簡単にします.
codeforcesサイトのapiタブでcodeforces apiの説明を表示できます.
rest形式で設計する.
これは、パッケージサイトのapiの簡単な紹介です.
python requestsモジュールはhttpリクエストを簡単にします.
codeforcesサイトのapiタブでcodeforces apiの説明を表示できます.
rest形式で設計する.
これは、パッケージサイトのapiの簡単な紹介です.
Script
handleを次のPythonスクリプトに挿入すると、必要なhandleプールの問題情報が得られます.
全部で何問正解したかを表示します.
難易度で何問答えたかを示す.
どんな言語でいくつかの問題に答えた.
Latingのない問題をスキップしました.
import requests
#reference : https://codeforces.com/apiHelp/methods#user.status
URL='https://codeforces.com/api/'
method='user.status'
payload={'handle':'tourist'} #give user's handle as payload
URI=URL+method
r=requests.get(URI,payload)
print(r.status_code)
response=r.json()
res=response['result']
solved=[]
for r in res:
if r['verdict']=='OK':
#print(r['problem'])
if r['problem'].get('rating') is None:
print("not rated problem : ",r['problem'])
continue
solved.append([r['problem']['index'],r['problem']['name'],r['problem']['rating'],r['programmingLanguage']])
#def rating(s):
# return s[2]
#solved.sort(key=rating)
solved_per_rating={}
solved_per_language={}
solved_problem={}
count=0
for s in solved:
if solved_problem.get(s[1]) is not None:
continue
count+=1
if solved_per_rating.get(s[2]) is None:
solved_per_rating[s[2]]=1
else:
solved_per_rating[s[2]]+=1
if solved_per_language.get(s[3]) is None:
solved_per_language[s[3]]=1
else:
solved_per_language[s[3]]+=1
print("solved problem count : ",count)
print("solved per problem rating : ",solved_per_rating)
print("solved per language : ",solved_per_language)
このように展示しますスクリプトを変更して、他の必要な情報を取得することもできます.
Reference
この問題について(codeforces apiの使用を試みます), 我々は、より多くの情報をここで見つけました
https://velog.io/@g00dluckroon/codeforces-api-사용해보기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import requests
#reference : https://codeforces.com/apiHelp/methods#user.status
URL='https://codeforces.com/api/'
method='user.status'
payload={'handle':'tourist'} #give user's handle as payload
URI=URL+method
r=requests.get(URI,payload)
print(r.status_code)
response=r.json()
res=response['result']
solved=[]
for r in res:
if r['verdict']=='OK':
#print(r['problem'])
if r['problem'].get('rating') is None:
print("not rated problem : ",r['problem'])
continue
solved.append([r['problem']['index'],r['problem']['name'],r['problem']['rating'],r['programmingLanguage']])
#def rating(s):
# return s[2]
#solved.sort(key=rating)
solved_per_rating={}
solved_per_language={}
solved_problem={}
count=0
for s in solved:
if solved_problem.get(s[1]) is not None:
continue
count+=1
if solved_per_rating.get(s[2]) is None:
solved_per_rating[s[2]]=1
else:
solved_per_rating[s[2]]+=1
if solved_per_language.get(s[3]) is None:
solved_per_language[s[3]]=1
else:
solved_per_language[s[3]]+=1
print("solved problem count : ",count)
print("solved per problem rating : ",solved_per_rating)
print("solved per language : ",solved_per_language)
Reference
この問題について(codeforces apiの使用を試みます), 我々は、より多くの情報をここで見つけました https://velog.io/@g00dluckroon/codeforces-api-사용해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol