代码之家  ›  专栏  ›  技术社区  ›  HJA24

在键级python下向字典添加新元素

  •  0
  • HJA24  · 技术社区  · 6 年前

    我正在努力将一个元素包括到我的字典中。字典有两个键,即 H . 如果我使用以下代码,这是明显可见的:

      shots = driver.execute_script("return shotsData")
      for x in shots:
        print(x)
    

    但是,如果我用下面的代码遍历字典

    shots = driver.execute_script("return shotsData")
    for x in shots:
       print(shots[x])
    

    我看到以下输出:

    [
    {
      'X': '0.7909999847412109',
      'Y': '0.36700000762939455',
      'a_goals': '1',
      'a_team': 'Manchester City',
      'date': '2015-12-22 00:00:00',
      'h_a': 'a',
      'h_goals': '2',
      'h_team': 'Arsenal',
      'id': '55522',
      'lastAction': 'Pass',
      'match_id': '250',
      'minute': '6',
      'player': 'David Silva',
      'player_assisted': 'Bacary Sagna',
      'player_id': '617',
      'result': 'MissedShots',
      'season': '2015',
      'shotType': 'LeftFoot',
      'situation': 'OpenPlay',
      'xG': '0.02694704197347164'
    },
    ...
    ]

    输出表示足球比赛中拍摄的每个镜头的数据。所以, 镜头 -variable是一个字典,它包含了home(away)团队的所有快照,其中 H 代表实际团队。

    我想加入联赛。但是,使用以下代码

    league = 'premier_league'
    shots.update({'league': league})
    

    给我 A、H、联盟 而不是

    {
      'X': '0.7909999847412109',
      'Y': '0.36700000762939455',
      'a_goals': '1',
      'a_team': 'Manchester City',
      'date': '2015-12-22 00:00:00',
      'h_a': 'a',
      'h_goals': '2',
      'h_team': 'Arsenal',
      'id': '55522',
      'lastAction': 'Pass',
      'match_id': '250',
      'minute': '6',
      'player': 'David Silva',
      'player_assisted': 'Bacary Sagna',
      'player_id': '617',
      'result': 'MissedShots',
      'season': '2015',
      'shotType': 'LeftFoot',
      'situation': 'OpenPlay',
      'xG': '0.02694704197347164',
      'League': 'premier_league', 
    },

    我应该如何更改我的代码?事先谢谢,

    2 回复  |  直到 6 年前
        1
  •  0
  •   Kannappan Sirchabesan Picarus    6 年前

    替换代码

    league = 'premier_league'
    shots.update({'league': league})
    

    用下面的代码

    league = 'premier_league'
    for shot in shots:
        for d in shots[shot]:
            d.update({'league': league})
    
        2
  •  0
  •   pj.dewitte    6 年前

    在您的代码中, shots 是一个字典列表的字典。你需要更新每个“快照子字典”。

    要做到这一点,最简单的方法是重复拍摄,然后在拍摄中设置“联盟”键:

    league = 'premier_league'
    for team_shots in shots.values():
        for shot in team_shots:
            shot['league'] = league