Как преобразовать строковое представление словаря в словарь в Python

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
Иногда при работе с Python возникает необходимость преобразовать строковое представление словаря обратно в словарь. Представим, что есть строка, которая
Иногда при работе с Python возникает необходимость преобразовать строковое представление словаря обратно в словарь. Представим, что есть строка, которая представляет собой словарь:
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
Цель — преобразовать эту строку обратно в словарь Python.
Одним из способов сделать это было бы использование функции eval()
, однако это может быть небезопасно, потому что eval()
может выполнять произвольный код. Так что лучше избегать его использования, если это возможно.
Более безопасным вариантом является использование модуля ast
и его функции literal_eval()
. В отличие от eval()
, literal_eval()
обрабатывает только простые литералы Python.
Вот как это может быть выполнено:
import ast
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
d = ast.literal_eval(s)
После выполнения этих строк, d
будет словарем Python, который можно использовать как обычный словарь:
print(d)
# Output: {'muffin': 'lolz', 'foo': 'kitty'}
Таким образом, если есть необходимость преобразовать строковое представление словаря обратно в словарь и при этом не использовать eval()
, то функция literal_eval()
из модуля ast
будет отличным выбором.
Добавить комментарий