【问题标题】:How to make a nested array in python如何在python中制作嵌套数组
【发布时间】:2022-11-30 21:54:36
【问题描述】:

我有一个 python 字典 (league_managers),显示名称的 ID;

{1443956: 'Sean McBride', 1281609: 'Maghnus Og Dunne', 4841686: 'Pearse Bowes', 406739: 'Adam Mcconville', 196345: 'Niall McCurdy', 808057: 'John McDonald', 6365597: 'Tony Cassidy', 1322001: 'Tiarnan Mccaffrey', 350275: 'Eoghan McCurdy', 4820159: 'Ciaran McKeown', 7185401: 'Ryan Russell', 5203794: 'Michael Devenny', 3145058: 'Declan Lees'}

对于该字典中的每个 Id,都会调用一个 API 来返回球员在本赛季每个比赛周的得分。如何以数据结构化的方式将此数组添加到此字典中

Id-> 名称-> 事件-> TotalPoints

api_url = ("https://fantasy.premierleague.com/api/leagues-classic/258305/standings")
response = requests.get(api_url).json()

league_managers = dict()
manager_points = dict()

for item in response['standings']['results']:
    managerId = item['entry']
    managerName = item['player_name']
    league_managers[managerId] = managerName


for manager in league_managers:
    players_api_url = ("https://fantasy.premierleague.com/api/entry/"+ str(manager)+"/history/")
    playersResponse = requests.get(players_api_url).json()
for gameweek in playersResponse['current']:
    event = gameweek['event']
    total_points = gameweek['total_points']

【问题讨论】:

    标签: python


    【解决方案1】:
    def get_event(id): #call your event api here
        return str(id) + "_event"
    
    def get_points(): #call your points api here
        return 100
    
    
    d = {1443956: 'Sean McBride', 1281609: 'Maghnus Og Dunne', 4841686: 'Pearse Bowes', 406739: 'Adam Mcconville', 196345: 'Niall McCurdy', 808057: 'John McDonald', 6365597: 'Tony Cassidy', 1322001: 'Tiarnan Mccaffrey', 350275: 'Eoghan McCurdy', 4820159: 'Ciaran McKeown', 7185401: 'Ryan Russell', 5203794: 'Michael Devenny', 3145058: 'Declan Lees'}                                                            
    
    new_dict = {}      
    #this loop gives your expected structure                                                                          
    for i in d:                                                    
        new_dict[i] ={}
        new_dict[i][d[i]]={}
        event = get_event(i)
        new_dict[i][d[i]][event]=get_points()
    

    按照上面的代码输出

    {1443956: {'Sean McBride': {'1443956_event': 100}}, 1281609: {'Maghnus Og Dunne': {'1281609_event': 100}}, 4841686: {'Pearse Bowes': {'4841686_event': 100}}, 406739: {'Adam Mcconville': {'406739_event': 100}}, 196345: {'Niall McCurdy': {'196345_event': 100}}, 808057: {'John McDonald': {'808057_event': 100}}, 6365597: {'Tony Cassidy': {'6365597_event': 100}}, 1322001: {'Tiarnan Mccaffrey': {'1322001_event': 100}}, 350275: {'Eoghan McCurdy': {'350275_event': 100}}, 4820159: {'Ciaran McKeown': {'4820159_event': 100}}, 7185401: {'Ryan Russell': {'7185401_event': 100}}, 5203794: {'Michael Devenny': {'5203794_event': 100}}, 3145058: {'Declan Lees': {'3145058_event': 100}}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2019-09-29
      相关资源
      最近更新 更多