InternetMaster
@InternetMaster
Интернет

Как из string сделать list Python?

Есть строка
"[{'name': 'Рулон', 'last_name': 'Обоев'}, {'name': 'Лежана', last_name: 'Раздвиногова'}]"


Как из нее сделать list?

spoiler
Весь DuckDuckGo не дал результатов.
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Даже если обернуть last_name в кавычки, это не будет валидный json, потому что в json кавычки должны быть двойные. Самый простой способ это решить - использовать ast.literal_eval - так как указанный код является валидным кодом на python:

import ast
s = "[{'name': 'Рулон', 'last_name': 'Обоев'}, {'name': 'Лежана', 'last_name': 'Раздвиногова'}]"
print (repr(ast.literal_eval(s)))


Почему не просто eval? Потому что это более безопасно. Если в качестве "данных" нам прилетит

os.system("rm -rf /some/file")

то eval выполнит этот код и удалит файл как ни в чём не бывало, а ast.literal_eval кинет исключение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@deliro
JSON, правда в твоём случае супер кривой. Скорее это просто JS код
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
import json

jsonStr = '[{"a":1, "b":2}, {"c":3, "d":4}]'
aList = json.loads(jsonStr)
print(aList[0]['b'])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы