Усі відповіді будуть розбиті на загальні рядки Unicode. Настільки, наскільки я можу, для Python3 працює у всіх випадках.
from codecs import encode, decode
sample = u'mon€y\\nröcks'
result = decode(encode(sample, 'latin-1', 'backslashreplace'), 'unicode-escape')
print(result)
Як зазначено в коментарях, ви також можете використовувати literal_evalметод з astмодуля так:
import ast
sample = u'mon€y\\nröcks'
print(ast.literal_eval(F'"{sample}"'))
Або так, коли ваша рядок дійсно містить літеральний рядок (включаючи лапки):
import ast
sample = u'"mon€y\\nröcks"'
print(ast.literal_eval(sample))
Однак якщо ви не впевнені в тому, що вхідна рядок використовує подвійні чи одиничні лапки як роздільники, або коли ви не можете припустити, що вона взагалі належним чином скасується, тоді literal_evalможе виникнути деякий SyntaxErrorчас, коли метод кодування / декодування все ще буде працювати.