Remplacer des valeurs dans une liste ou un dictionnaire Python?
Ok, j'essaie de filtrer une liste/dictionnaire qui m'a été transmise et de la "nettoyer" un peu, car il y a certaines valeurs en elle dont j'ai besoin pour me débarrasser.
donc, si ça ressemble à ça:
"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"...}]
Comment pourrais-je rapidement et facilement parcourir tout cela et remplacer toutes les valeurs de "AAA" par quelque chose comme "XXX"?
Accent est mis sur la vitesse et les ressources, qu'elles soient longues listes et je ne veux pas que ce processus de consommer trop de temps.
21
demandé sur
Crazy Serb
2009-07-03 00:29:28
2 réponses
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'}]}
28
répondu
RichieHindle
2009-07-02 20:40:17
dic = root['records'][0]
for i, j in dic.items(): # use iteritems in py2k
if j == 'AAA':
dic[i] = 'xxx'
10
répondu
SilentGhost
2009-07-02 20:38:05