首页 > 解决方案 > 在python中更新嵌套数据结构的节点

问题描述

我对python很陌生。我在更新 python 数据结构时遇到问题,非常感谢您提供一些帮助。这是我的问题:

我有一个如下结构:

"players": [
    {
       "metadata": {
        "level": 11,
        "guild": "wizard",
        "kingdom" : "westonia"
       },
       "player_id": 34333
    },
    {
       "metadata": {
        "level": 11,
        "guild": "warrior",
        "kingdom": "Glorianth"
       },
       "player_id": 197456
    },
    ...etc...
]

现在,我想根据条件循环和更新其中一些播放器节点。所以我这样做:

for player in players:
   player_id = player[player_id]
   if has_level_bonus(player_id):
      player_level = player['metadata']['level']
      player_level = player_level + 10
      player['metadata']['level'] = player_level

这会正确更新 player_level,但仅在提取的“玩家”节点内。我的问题是我如何将这个更新的值“放”回“玩家”结构?

我试过players[player]['metadata']['level'] = player_level了,但它给了我错误。我是 python 新手,所以我无法理解。任何帮助深表感谢。

标签: pythondata-structures

解决方案


推荐阅读