Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
07 Июл 2023
1 мин
606

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

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

Подарок
Забрать подарок