Open In App
Related Articles

Python program to create a dictionary from a string

Improve Article
Improve
Save Article
Save
Like Article
Like

Dictionary in python is a very useful data structure and at many times we see problems regarding converting a string to a dictionary. So, let us discuss how we can tackle this problem. Method # 1: Using eval() If we get a string input which completely resembles a dictionary object(if the string looks like dictionary as in python) then we can easily convert it to dictionary using eval() in Python. 

Python3




# Python3 code to convert
# a string to a dictionary
 
# Initializing String
string = "{'A':13, 'B':14, 'C':15}"
 
# eval() convert string to dictionary
Dict = eval(string)
print(Dict)
print(Dict['A'])
print(Dict['C'])


Output:

{'C': 15, 'B': 14, 'A': 13}
13
15

Method # 2: Using generator expressions in python If we get a string input does not completely resemble a dictionary object then we can use generator expressions to convert it to a dictionary. 

Python3




# Python3 code to convert
# a string to a dictionary
 
# Initializing String
string = "A - 13, B - 14, C - 15"
 
# Converting string to dictionary
Dict = dict((x.strip(), y.strip())
             for x, y in (element.split('-')
             for element in string.split(', ')))
 
print(Dict)
print(Dict['A'])
print(Dict['C'])


Output:

{'C': '15', 'A': '13', 'B': '14'}
13
15

The code given above does not convert integers to an int type,  if integers keys are there then just line 8 would work 

Python3




string = "11 - 13, 12 - 14, 13 - 15"
 
Dict = dict((x.strip(), int(y.strip()))
             for x, y in (element.split('-')
             for element in string.split(', ')))
 
print(Dict)


Output:

{'13': 15, '12': 14, '11': 13}

One additional approach that could be used to create a dictionary from a string is to use the json module. The json module allows you to parse a JSON string and convert it into a dictionary.

Here’s an example of how you could use the json module to create a dictionary from a string:

Python3




import json
 
# Initializing string
string = '{"key1": "value1", "key2": "value2"}'
 
# Parse the string into a dictionary using json.loads
dict = json.loads(string)
 
print(dict# {'key1': 'value1', 'key2': 'value2'}


Output

{'key1': 'value1', 'key2': 'value2'}

The json module is a part of the Python standard library, so you don’t need to install any additional modules to use it.

Time complexity for this approach is O(N), where N is the length of the string, as the json.loads function needs to parse the entire string to create the dictionary. The space complexity is also O(N), as the resulting dictionary will be the same size as the original string.


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 30 Dec, 2022
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials