遍历 Python 字典中不同项的相同键

26 阅读2分钟

有一个复杂字典,比如: { "Div 4 A Herrar": { "0": {"convertedTime": "86", "awayScore": "0", "homeTeam": "SKIF Semberija", "homeScore": "0", "awayTeam": "Floda BoIF", "time": "00:00", "events": []}, "1": {"convertedTime": "40", "awayScore": "0", "homeTeam": "Partille IF FK ", "homeScore": "0", "awayTeam": "Kode IF", "time": "01:00", "events": []}, "2": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Kongah\u00e4lla", "homeScore": "0", "awayTeam": "Romelanda UF", "time": "02:00", "events": []}, "3": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Virgo", "homeScore": "0", "awayTeam": "United Africa FC", "time": "03:00", "events": []}, "4": {"convertedTime": "", "awayScore": "0", "homeTeam": "Hisingsbacka FC", "homeScore": "0", "awayTeam": "Guldhedens IK", "time": "04:00", "events": []}, "5": {"convertedTime": "", "awayScore": "0", "homeTeam": "IF Warta", "homeScore": "0", "awayTeam": "Bergums IF", "time": "05:00", "events": []} } "Div 5 A Herrar": { "0": {"convertedTime": "86", "awayScore": "0", "homeTeam": "SKIF Semberija", "homeScore": "0", "awayTeam": "Floda BoIF", "time": "00:00", "events": []}, "1": {"convertedTime": "40", "awayScore": "0", "homeTeam": "Partille IF FK ", "homeScore": "0", "awayTeam": "Kode IF", "time": "01:00", "events": []}, "2": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Kongah\u00e4lla", "homeScore": "0", "awayTeam": "Romelanda UF", "time": "02:00", "events": []}, "3": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Virgo", "homeScore": "0", "awayTeam": "United Africa FC", "time": "03:00", "events": []}, "4": {"convertedTime": "", "awayScore": "0", "homeTeam": "Hisingsbacka FC", "homeScore": "0", "awayTeam": "Guldhedens IK", "time": "04:00", "events": []}, "5": {"convertedTime": "", "awayScore": "0", "homeTeam": "IF Warta", "homeScore": "0", "awayTeam": "Bergums IF", "time": "05:00", "events": []} } }

需要遍历此字典中的所有 time 键,以更改它们的值。这意味着将需要遍历 "Div 4 A Herrar" 中的 6 个 time 键/值对,以及 "Div 5 A Herrar" 中的 6 个键/值对。

2.解决方案

以下是遍历 Python 字典中不同项的相同键的解决方案:

for key1 in dict:
    for key2 in dict[key1]:
        dict[key1][key2]['time'] = 'newTime'

这段代码将遍历字典中的所有键,并迭代访问键所对应的值。对于每个值,代码将更新 time 键的值为 newTime

下面是一个代码示例,演示如何使用此解决方案:

my_dict = {
    "Div 4 A Herrar": {
        "0": {"convertedTime": "86", "awayScore": "0", "homeTeam": "SKIF Semberija", "homeScore": "0", "awayTeam": "Floda BoIF", "time": "00:00", "events": []},
        "1": {"convertedTime": "40", "awayScore": "0", "homeTeam": "Partille IF FK ", "homeScore": "0", "awayTeam": "Kode IF", "time": "01:00", "events": []},
        "2": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Kongah\u00e4lla", "homeScore": "0", "awayTeam": "Romelanda UF", "time": "02:00", "events": []},
        "3": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Virgo", "homeScore": "0", "awayTeam": "United Africa FC", "time": "03:00", "events": []},
        "4": {"convertedTime": "", "awayScore": "0", "homeTeam": "Hisingsbacka FC", "homeScore": "0", "awayTeam": "Guldhedens IK", "time": "04:00", "events": []},
        "5": {"convertedTime": "", "awayScore": "0", "homeTeam": "IF Warta", "homeScore": "0", "awayTeam": "Bergums IF", "time": "05:00", "events": []}
    }
    "Div 5 A Herrar": {
        "0": {"convertedTime": "86", "awayScore": "0", "homeTeam": "SKIF Semberija", "homeScore": "0", "awayTeam": "Floda BoIF", "time": "00:00", "events": []},
        "1": {"convertedTime": "40", "awayScore": "0", "homeTeam": "Partille IF FK ", "homeScore": "0", "awayTeam": "Kode IF", "time": "01:00", "events": []},
        "2": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Kongah\u00e4lla", "homeScore": "0", "awayTeam": "Romelanda UF", "time": "02:00", "events": []},
        "3": {"convertedTime": "", "awayScore": "0", "homeTeam": "IK Virgo", "homeScore": "0", "awayTeam": "United Africa FC", "time": "03:00", "events": []},
        "4": {"convertedTime": "", "awayScore": "0", "homeTeam": "Hisingsbacka FC", "homeScore": "0", "awayTeam": "Guldhedens IK", "time": "04:00", "events": []},
        "5": {"convertedTime": "", "awayScore": "0", "homeTeam": "IF Warta", "homeScore": "0", "awayTeam": "Bergums IF", "time": "05:00", "events": []}
    }
}

# 遍历字典中的所有键
for key1 in my_dict:
    # 遍历键所对应的值
    for key2 in my_dict[key1]:
        # 更新 time 键的值为 newTime
        my_dict[key1][key2]['time'] = 'newTime'

# 打印更新后的字典
print(my_dict)