Search code examples
dictionarysplitkeykey-value

split a key-value pair in Python


I have a dictionairy as follows:

 {
    "age": "76",
    "Bank": "98310",
    "Stage": "final",
    "idnr": "4578",
    "last number + Value": "[345:K]"}

I am trying to adjust the dictionary by splitting the last key-value pair creating a new key('total data'), it should look like this:

 "Total data":¨[
 {
 "last number": "345"
 "Value": "K"
  }]
  }

Does anyone know if there is a split function based on ':' and '+' or a for loop to accomplish this? Thanks in advance.


Solution

  • One option to accomplish that could be getting the last key from the dict and using split on + for the key and : for the value removing the outer square brackets assuming the format of the data is always the same.

    If you want Total data to contain a list, you can wrap the resulting dict in []

    from pprint import pprint
    
    d = {
        "age": "76",
        "Bank": "98310",
        "Stage": "final",
        "idnr": "4578",
        "last number + Value": "[345:K]"
    }
    
    last = list(d.keys())[-1]
    d["Total data"] = dict(
        zip(
            last.strip().split('+'),
            d[last].strip("[]").split(':')
        )
    )
    pprint(d)
    

    Output (tested with Python 3.9.4)

    {'Bank': '98310',
     'Stage': 'final',
     'Total data': {' Value': 'K', 'last number ': '345'},
     'age': '76',
     'idnr': '4578',
     'last number + Value': '[345:K]'}
    

    Python demo