简体   繁体   中英

Python list of dictionaries - access keys

I need to change name of the keys in dictionary using item.replace(" ", "_").lower() How could I access these keys?

{
  "environment": [
    {
      "Branch Branching": "97/97(100%)",
      "Test Status": "TC39",
    },
    {
      "Branch Branching": "36/36(100%)",
      "Test Status": "TC29",
    }
],
}

One way is to use:

dictionary[new_key] = dictionary.pop(old_key)

In your example:

env = {
    "environment": [
        {
            "Branch Coverage": "97/97(100%)",
            "Test Environment": "REGISTERHANDLING",
            "Test Configuration": "TC39",
        },
        {
            "Branch Coverage": "36/36(100%)",
            "Test Environment": "PRA",
            "Test Configuration": "TC29",
        }
    ],
}

# Looping over each index in the env['environment'] list, 
# this way we can edit the original dictionary.

# Note that enumerate returns a tuple of values (idx, val)
# And _ is commonly used to demonstrate that we will not be using val, only the index.
for index, _ in enumerate(env['environment']):

    # For each key, we want to create a new key and delete the old one.
    for key in env['environment'][index].keys():

        # Calculate the new key
        new_key = key.replace(" ", "_").lower()

        # .pop deletes the old key and returns the result, and the left hand side of this operation creates the new key in the correct index.
        env['environment'][index][new_key] = env['environment'][index].pop(key)

This question was already solved before, if you'd like to explore other answers, click here.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM