Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
1 мин
651

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

Иногда при работе с 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 будет отличным выбором.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий