Я захожу в сеть JSON, использую запрос и json. Я могу вызывать первичные объекты из массива, но не могу понять синтаксис для вызова подобъекта или объекта внутри объекта. Вот фрагмент JSON, с которым я работаю:
[
{
"round":1,
"roster_id":null,
"player_id":"4034",
"picked_by":"343691457850322944",
"pick_no":1,
"metadata":
{
"years_exp":"3",
"team":"CAR",
"status":"Active",
"sport":"nfl",
"position":"RB",
"player_id":"4034",
"number":"22",
"news_updated":"1577664318550",
"last_name":"McCaffrey",
"injury_status":"",
"first_name":"Christian"},
"is_keeper":null,
"draft_slot":1,
"draft_id":"549087829381697536"},
А вот мой полный код. Я оставил фрагмент проблемного раздела внизу. Мой код работает нормально, но он просто дает мне ВСЕ метаданные. Я пытаюсь получить только метаданные / first_name / last_name / position. (Мне нужны только эти элементы из метаданных).
import requests
import json
def job():
print('What is Sleeper App user name?')
user_name = (input())
user_data = requests.get("https://api.sleeper.app/v1/user/"+user_name).json()
user = (user_data['user_id'])
print("User ID:"+user+"\n")
draft_data = requests.get("https://api.sleeper.app/v1/user/"+user+"/drafts/nfl/2020").json()
draft_lists = []
for item in draft_data:
draft_details = {'draft_id':None}
draft_details = item['draft_id']
draft_lists.append(draft_details)
print(user_name+"Draft Id's"+"\n")
print(draft_lists)
print("\n")
print("Type the Draft ID that you would like to inspect")
draftinput = (input())
draftpickdata = requests.get("https://api.sleeper.app/v1/draft/"+draftinput+"/picks").json()
draft_picks = []
for item in draftpickdata:
pick_details = {'pick_no':None}, {'metadata':{'position'}}
pick_details = item['pick_no']
pick_details = item['metadata']
draft_picks.append(pick_details)
print("Draft "+draftinput+" Picks \n" + str(draft_picks))
while True:
try:
job()
except:
print("Invalid User Name"+"\n")
pass
Вы можете запустить мой код здесь, если хотите: https://repl.it/@weston6949 / DraftPicksWork
Проблемный раздел Фрагмент:
draftinput = (input())
draftpickdata = requests.get("https://api.sleeper.app/v1/draft/"+draftinput+"/picks").json()
draft_picks = []
for item in draftpickdata:
pick_details = {'pick_no':None}, {'metadata':{'position'}}
pick_details = item['pick_no']
pick_details = item['metadata']
draft_picks.append(pick_details)
print("Draft "+draftinput+" Picks \n" + str(draft_picks))