У меня есть сообщение трассировки, как:
_str = ['exec(\'g.\'+option_val+\'=\'+option_val+\'()\')\n', ' File "<string>", line 1, in <module>\n', ' File "/home/nazariy/git/investment-tools/app/core/utilities/dbmonet.py", line 16, in __init__\n raise ValueError(\'Could not connect to the MonetDB database\')\n', 'ValueError: Could not connect to the MonetDB database\n']
Я пытаюсь заменить каждый случай на "Пихарм":
_str = [str_.replace("\'",'"') for str_ in _str]
вышеописанное не работает, по какой-то причине оно разбивает каждый отдельный символ. Но вышесказанное работает в jupyter qtconsole ...
Я также пытался экранировать escape-символ в Pycharm:
_str = [str_.replace("\\'",'"') for str_ in _str]
тоже не работает ...
есть идеи? Спасибо
EDIT:
Вот фрагмент кода, который генерирует трассировку:
import sys, traceback
exc_type, exc_value, exc_traceback = sys.exc_info()
pretty_traceback = repr(traceback.format_exception(exc_type, exc_value, exc_traceback))
#print("---- All the items ---")
#for i, x in enumerate(pretty_traceback): print(str(i) + ": "+(x))
print("------------------------- before pretty -----------------------")
pretty_traceback = [i.replace(r"\'", '"') for i in pretty_traceback]
print(pretty_traceback)
print("------------------------ pretty escape -------------------")
pretty_traceback = [i.replace(r"\n", "") for i in pretty_traceback]
print(pretty_traceback)
print("------------------------ pretty replace -------------------")
pretty_traceback = ["<p>"+_str+"</p>" for _str in pretty_traceback]
print(pretty_traceback)