Как превратить str(словарь) обратно в словарь?

Для того чтобы превратить строку, которая представляет словарь в Python, обратно в словарь, можно воспользоваться функцией eval() или модулем ast. Важно отметить, что использование функции eval() может быть опасным, так как она выполняет код и может представлять угрозу безопасности, если строка будет содержать злонамеренный код.

Вот пример использования eval():

dict_str = "{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}"
dictionary = eval(dict_str)
print(type(dictionary))
print(dictionary)

В данном примере, eval(dict_str) будет выполнять строку dict_str как код и преобразовывать ее в словарь. Затем мы выводим тип переменной dictionary (чтобы убедиться, что это действительно словарь) и сам словарь.

Другой вариант - использование модуля ast. Этот модуль предлагает более безопасный способ преобразования строки словаря в сам словарь, потому что он не выполняет переданную строку как код, а парсит ее и создает объекты соответствующего типа данных.

import ast

dict_str = "{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}"
dictionary = ast.literal_eval(dict_str)
print(type(dictionary))
print(dictionary)

В данном примере, ast.literal_eval(dict_str) будет безопасно преобразовывать строку dict_str в словарь. Затем мы выводим тип переменной dictionary и сам словарь.

В обоих случаях результат будет одинаковым:

<class 'dict'>
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

Таким образом, используя функцию eval() или модуль ast, вы можете легко превратить строку, представляющую словарь, обратно в сам словарь в Python.