[英]Iterating through the same key in different items python dictionary
i have a complex dictionary that looks like this. 我有一本看起来像这样的复杂字典。
{"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": []}
}
}
There are a few more items but its not relevant since you get the structure of the dictionary. 还有更多项目,但是由于您有了字典的结构,因此无关紧要。
Now what i need to do is to iterate through all the time keys in this dictionary because i will need to change the value of them. 现在我需要做的是遍历该词典中的所有时间键,因为我将需要更改它们的值。 Meaning it will have to iterate through 6 time key/pair values from "Div 4 A Herrar" and 6 from "Div 5 A Herrar". 这意味着它将必须迭代“ Div 4 A Herrar”中的6个时间键/对值和“ Div 5 A Herrar”中的6个时间键/对值。 How on earth can i accomplish anything like that I'm totally lost 我到底该如何完成我完全迷失的事情
To get to the time value: 要获得时间值:
for key1 in dict:
for key2 in dict[key1]:
dict[key1][key2]['time'] = 'newTime'
If the structure you presented maintains, you can use one of these 2 methods. 如果您提供的结构保持不变,则可以使用这两种方法之一。 Otherwise, you would have to make a recursive function. 否则,您将必须创建一个递归函数。
dict_of_herrars = {
#...
}
# herrar = "Div 4 A Herrar", etc
for herrar, herrar_dict in dict_of_herrars.items():
# game = "0","1",etc
for game, game_dict in herrar_dict.items():
game_dict["time"]="13:37"
def iter_time(dict_of_herrars):
# herrar = "Div 4 A Herrar", etc
for herrar, herrar_dict in dict_of_herrars.items():
# game = "0","1",etc
for game, game_dict in herrar_dict.items():
def change_time(new_time,game_dict=game_dict):
game_dict["time"]=newtime
yield change_time
for change_time in iter_time(dict_of_herrars):
change_time("13:37")
d = {"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 i in d:
for j in d[i]:
for k in d[i][j]:
if k == "time":
print "Original Time: ", d[i][j][k]
d[i][j][k] = "something"
print "Changed to: ", d[i][j][k]
Original Time: 01:00
Changed to: something
Original Time: 00:00
Changed to: something
Original Time: 03:00
Changed to: something
Original Time: 02:00
Changed to: something
Original Time: 05:00
Changed to: something
Original Time: 04:00
Changed to: something
Original Time: 01:00
Changed to: something
Original Time: 00:00
Changed to: something
Original Time: 03:00
Changed to: something
Original Time: 02:00
Changed to: something
Original Time: 05:00
Changed to: something
Original Time: 04:00
Changed to: something
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.