Преобразование списка в строковом представлении в обычный список
Я уже ни раз сталкивался с такой проблемой: у меня есть строковая переменная в виде '["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.