Преобразование списка в строковом представлении в обычный список

Я уже ни раз сталкивался с такой проблемой: у меня есть строковая переменная в виде '["numer",9,197,"uyt"]'. Можно заметить, что это строка со списком. Подскажите, пожалуйста, как преобразовать её в список?

split() не поможет, так как зачастую в кавычках находятся словари в словаре в списке в словаре (в общем, весьма трудная конструкция, которую так просто методом split() не преобразовать)


Ответы (2 шт):

Автор решения: PerL

Используй функцию eval

data_str = '["number", 9]'
data_list = eval(data_str)
→ Ссылка
Автор решения: Vladimir Obrizan

Если в этом переменной содержится валидный JSON, то можно выполнить т. н. десериализацию — восстановление Python-объекта из строки:

import json
var = '["numer",9,197,"uyt"]'
try:
    result = json.loads(var)
    print(result)
except json.decoder.JSONDecodeError:
    print('Невалидный JSON')

Результат:

['numer', 9, 197, 'uyt']

Обратите внимание на try-except. Он подскажет вам, если в какой-то момент в этих строках будет невалидный JSON.

→ Ссылка