Reputation: 53
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
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
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