Ok, j'essaye de filtrer une liste/dictionnaire qui m'a été transmise et de la "nettoyer" un peu, car il y a certaines valeurs dont je dois me débarrasser.
Donc, si cela ressemble à ceci:
"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"...}]
Comment pourrais-je parcourir tout cela rapidement et facilement et remplacer toutes les valeurs de "AAA" par quelque chose comme "XXX"?
L'accent est mis sur la vitesse et les ressources, car il peut s'agir de longues listes et je ne veux pas que ce processus prenne trop de temps.
DATA = {"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"}]}
for name, datalist in DATA.iteritems(): # Or items() in Python 3.x
for datadict in datalist:
for key, value in datadict.items():
if value == "AAA":
datadict[key] = "XXX"
print (DATA)
# Prints {'records': [{'key3': 'CCC', 'key2': 'BBB', 'key1': 'XXX', 'key4': 'XXX'}]}
dic = root['records'][0]
for i, j in dic.items(): # use iteritems in py2k
if j == 'AAA':
dic[i] = 'xxx'