Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
09 Окт 2023
1 мин
795

Как преобразовать строковое представление словаря в словарь в 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 будет отличным выбором.

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