2009-07-02 19 views
21

私は削除する必要がある特定の値があるので、私に渡されたリスト/辞書をフィルタリングして、少しだけ "クリーンアップ"しようとしています。Pythonのリスト/辞書の値を置き換えますか?

だから、それはこのように見ている場合:

"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"...}] 

がどのように迅速かつ容易にそれをすべてを介して実行し、「XXX」のようなもので、「AAA」のすべての値を置き換えますか?

これは長いリストになる可能性があるため、スピードとリソースに重点が置かれています。このプロセスでは時間がかかり過ぎることはありません。魅力のように働いた

答えて

28
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'}]} 
+0

うん、。私は外側のループの1つを欠いていて、リスト/項目()のエラーを取得していました...ありがとう! –

10
dic = root['records'][0] 
for i, j in dic.items():  # use iteritems in py2k 
    if j == 'AAA': 
     dic[i] = 'xxx' 
関連する問題