У меня проблема с использованием ast.literal_eval(). В приведенном ниже примере я хочу только преобразовать строку (myText) в dictionnary. Но ast.literal_eval() попытайтесь оценить <__main__.myClass instance at 0x0000000052D64D88>
и дайте мне ошибку. Я полностью anderstand этой ошибка, но я хотел бы знать, если есть способ избежать этого (с другой функцией или другим способом, чтобы использовать функцию ast.literal_eval)PYTHON: Есть функция, аналогичная ast.literal_eval()?
import ast
myText = "{<__main__.myClass instance at 0x0000000052D64D88>: value}"
ast.literal_eval(myText)
# Error: invalid syntax
# Traceback (most recent call last):
# File "<maya console>", line 4, in <module>
# File "C:\Program Files\Autodesk\Maya2016\bin\python27.zip\ast.py", line 49, in literal_eval
# node_or_string = parse(node_or_string, mode='eval')
# File "C:\Program Files\Autodesk\Maya2016\bin\python27.zip\ast.py", line 37, in parse
# return compile(source, filename, mode, PyCF_ONLY_AST)
# File "<unknown>", line 1
# {<__main__.myClass instance at 0x0000000052D64D88>: value}
# ^
# SyntaxError: invalid syntax #
Спасибо заранее за ваши Помогите !
Подумайте об этом вручную, если вы знаете, что 'myText' будет довольно регулярным. 1 Разделите фигурные скобки. 2. Разделите запятую. 3. Разделите каждую результирующую строку на двоеточие и переместите части в словарь. – unwind
Что вы хотите здесь? –
Вы понимаете, что делает 'ast.literal_eval'? Если ваш пример является дословным, то ни ключ, ни значение в вашем представлении словаря не являются фактическим литералом. – user4815162342