Skip to content
Advertisement

How can I convert a string to dictionary in a manner where I have to extract key and value from same string

I need to convert string to dictionary in a manner for example

str1 = "00001000-0009efff : a 00100000-656b2fff : b"

Output what I require is

dict1 = {'a':['00001000','0009efff'], 'b':['00100000','656b2fff']}

Note: str1 can have many more such c, d, e with range.

Advertisement

Answer

You can do it with a regex:

import re

pattern = r'([w-]+) : ([w.]+)'
out = {m[1]: m[0].split('-') for m in re.findall(pattern, str1)}

Explanation of the regex:

  • match combination of alphanumeric characters and dashes [w-]+
  • followed by a space, a colon and a space _:_
  • followed by a combination of alphanumeric characters and dot [w.]+

The groups are catching your relevant infos.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement