Как хранить правильно переносы \n в БД, чтобы python их воспринимал?
При выборке предложений из БД, где используется \n для переноса строки, \n воспринимается, как просто два символа.
Если же вписать \n в код вручную , как обычно, то работает исправно.
Пример:
В столбце Vote в таблице Ex в БД хранится:
\nВарианты ответа:\n**A.** Traveled\n**B.** Traveling\n**C.** Travel\n**D.** Travels
Выборка и вставка в переменные для вывода:
cur.execute("""SELECT Vote FROM Ex""")
mess = cur.fetchone()
await ctx.send(f"{mess[2]}")
На выходе получаю: \nВарианты ответа:\nA. Traveled\nB. Traveling\nC. Travel\nD. Travels
Вывожу сообщения в discord, но это к делу не имеет отношения.
Как хранить правильно переносы в БД, чтобы python их воспринимал?
Ответы (1 шт):
Символы \n хранятся как обычные символы, а не как управляющие символы, обозначающие перенос строки.
При выборке из БД, \n воспринимаются просто как два символа, а не как перенос строки.
Проблему удалось решить с помощью функции replace().
Пример решения:
@bot.command()
async def test(ctx):
cur.execute("""SELECT * FROM Ex""")
f1 = cur.fetchall()
f2= f1[0][2].replace(r"\n", "\n")
await ctx.send(f"Строка с переменной, где хранится текст с переносом строки {f2}"