#python #python-3.x #dry
#python #python-3.x #сухой
Вопрос:
Я разрабатываю API на Python для сбора информации, чтобы позже использовать ее в обучающей машине. Я уже создал «черновик» кода, но есть ли какой-нибудь эффективный способ сделать этот код максимально компактным?
import requests
api_dir = 'https://fortnite-public-api.theapinetwork.com/prod09/users/id?username='
tuid = input('To see stats enter an user :')
dir1 = api_dir tuid
data_id = requests.get(dir1).json()
data_arreg = data_id['uid']
api2_dir = 'https://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats_v2?user_id='
dir2 = api2_dir data_arreg
data_stats = requests.get(dir2).json()
statskills = data_stats['overallData']['defaultModes']['kills']
statsmatch = data_stats['overallData']['defaultModes']['matchesplayed']
print('Number of total kills is {}.'.format(statskills))
print('Has a total of {} matches played.'.format(statsmatch))
Я разрабатываю этот код, как способ изучить API и использовать содержащуюся в них информацию. (вот почему я использовал fortnite API, поскольку он похож на личный проект, который я хочу разработать позже)
Комментарии:
1. Это лучше подходит для codereview.stackexchange.com
2. @JonathonReinhart Спасибо, не знал о stackexchange.
Ответ №1:
Похоже, вы на самом деле не повторяетесь. Вы можете использовать форматирование строк, чтобы сократить свой код, вынимая переменные и вводя их напрямую, хотя:
import requests
tuid = input('To see stats enter an user :')
data_id = requests.get('https://fortnite-public-api.theapinetwork.com/prod09/users/id?username={}'.format(tuid)).json()
data_stats = requests.get('https://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats_v2?user_id={}'.format(data_id['uid'])).json()
print('Number of total kills is {}.nHas a total of {} matches played.'.format(data_stats['overallData']['defaultModes']['kills'], data_stats['overallData']['defaultModes']['matchesplayed']))
Хотя это делает каждую строку немного длиннее…