Abhijeet-AR
Abhijeet-AR

Reputation: 53

Extracting a list from a string in python

I have a list of JSON objects as a string.

str = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"

Is there any way to store the string as a list into a variable?

arr = [{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]

Upvotes: 1

Views: 81

Answers (2)

azro
azro

Reputation: 54168

To not be bother by the json-quote problem, just use eval or ast.literal_eval

value = eval(value)

Because to have valid JSON, you may have double quotes, then pass it to json.loads, but this could be a problem if you have a double or single quote in the content

value = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"
value = json.loads(value.replace("'", '"'))

Upvotes: 4

kederrac
kederrac

Reputation: 17322

you could use ast.literal_eval:

from ast import literal_eval
my_str = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"
arr = literal_eval(my_str)
arr

output:

[{'key1': 'value1', 'key2': 'value2'},
 {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}]

Upvotes: 3

Related Questions