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