Разбор строки, содержащей backsla sh, для вывода в список Python - PullRequest
2 голосов
/ 20 марта 2020

У меня есть строка:

str = '[\'RED\', \'GREEN\', \'BLUE\']'

Я хочу разобрать ее на

list = ['RED','GREEN','BLUE']

Но я не могу это сделать.

Я пытался разобрать используя json .loads:

json.loads(str)

Это дало мне:

{JSONDecodeError}Expecting value: line 1 column 2 (char 1)

Ответы [ 2 ]

5 голосов
/ 20 марта 2020

Вы можете использовать ast.literal_eval. eval может быть опасно для ненадежных строк. Вы ast.literal_eval, который оценивает только действительные python структуры.

import ast
s = '[\'RED\', \'GREEN\', \'BLUE\']'
ast.literal_eval(s)
# ['RED', 'GREEN', 'BLUE']
0 голосов
/ 20 марта 2020

Вы можете использовать встроенную функцию python eval () . Это работает и для преобразования в python другие структуры данных по умолчанию (dict, tuples и т. Д. c). Что-то вроде:

str = '[\'RED\', \'GREEN\', \'BLUE\']'
l = eval(str)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...