web-dev-qa-db-fra.com

Remplacement des valeurs dans une Python?

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.

21
Crazy Serb
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
RichieHindle
dic = root['records'][0]
for i, j in dic.items():       # use iteritems in py2k
    if j == 'AAA':
        dic[i] = 'xxx'
10
SilentGhost