簡體   English   中英

使用python枚舉列表中包含字典的列表

[英]Enumerate through list having dictionary in it using python

我有一個看起來像這樣的結構:

{ 
"permutations": [
     {
        "testname": "Test1",
        "file_type": "file1",
        "test_options": {
            "rule_entities": [
                "name1"
         ],
        },
        ],
        "userType": "user",
        "rulename": "rule1",
        "action": "alert",
      },
     {
        "testname": "Test2",
        "file_type": "file2",
        "test_options": {
            "rule_entities": [
                "name2"
            ],
        },
        ],
        "userType": "user",
        "rulename": "rule2",
        "action": "alert",
      }
}

我想通過將兩個變量都附加有rule_entities值(例如testname:“ Test1_name1”和rulename:“ rule1_name1”)來對上述結構testname和rulename進行更改,其中name1來自rule_entities數組。 因此,以上結構應為最終結構

{ 
"permutations": [
     {
        "testname": "Test1_name1",
        "file_type": "file1",
        "test_options": {
            "rule_entities": [
                "name1"
         ],
        },
        ],
        "userType": "user",
        "rulename": "rule1_name1",
        "action": "alert",
      },
     {
        "testname": "Test2_name2",
        "file_type": "file2",
        "test_options": {
            "rule_entities": [
                "name2"
            ],
        },
        ],
        "userType": "user",
        "rulename": "rule2_name2",
        "action": "alert",
      }
}

我使用以下代碼片段嘗試了一下

for index, d in enumerate['permutations']:
    testname = d['permutations'][index]['testname']
    testname_new = testname + '_' + rule_entitities


for index, d in enumerate['permutations']:
    rulename = d['permutations'][index]['rulename']
    rulename_new = rulename + '_' + rule_entities

我沒有得到想要的輸出。 提前致謝!!

您從未更新過字典中存儲的值

for index, d in enumerate['permutations']:
    testname = d['permutations'][index]['testname']
    testname_new = testname + '_' + rule_entities
    d['permutations'][index]['testname'] = testname_new


for index, d in enumerate['permutations']:
    rulename = d['permutations'][index]['rulename']
    rulename_new = rulename + '_' + rule_entities
    d['permutations'][index]['rulename'] = rulename_new

我使用以下代碼使其工作:

for x in 'permutations':
    rule_entity_slash = ['permutations'][0]['test_options']['rule_entities'][0]
    rule_entity_underscore = rule_entity_slash.replace("/","_")
    x['testname'] = x['testname'] + '_' + rule_entity_underscore
    x['rulename'] = x['rulename'] + '_' + rule_entity_underscore

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM