Извлечение списка из строки в python - PullRequest
1 голос
/ 23 марта 2020

У меня есть список JSON объектов в виде строки.

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

Есть ли способ сохранить строку в виде списка в переменной?

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

Ответы [ 2 ]

4 голосов
/ 23 марта 2020

Чтобы не беспокоить проблема json -квот, просто используйте eval или ast.literal_eval

value = eval(value)

Поскольку для правильного JSON, вы можете иметь двойные кавычки , затем передайте его json.loads, но это может быть проблемой, если в содержании есть двойная или одинарная кавычка

value = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"
value = json.loads(value.replace("'", '"'))
3 голосов
/ 23 марта 2020

вы можете использовать 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

вывод:

[{'key1': 'value1', 'key2': 'value2'},
 {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...