Найти - Пользователи
Полная версия: Вывод текста с символом перенос строки "\n" из базы MySQL в поле Text не хочет работать правильно
Начало » Python для новичков » Вывод текста с символом перенос строки "\n" из базы MySQL в поле Text не хочет работать правильно
1 2 3
m1r42
Может быть проблема вообще в get когда я получаю данные из поля Text и сохраняю в базу?
    neispr = e7.get('1.0','end')
    length = len(str(neispr))
    neispr = str(neispr)[0:length-2]
m1r42
FishHook
ну, разумеется, тип будет str, потому что вы предыдущей строкой значение кастанули к str. Проверьте типы до всяческих преобразований
Но ведь не работает даже когда тип str во втором print
ZerG
cursor.fetchall() fetches all the rows of a query result. It returns all the rows as a list of tuples. An empty list is returned if there is no record to fetch.

cursor.fetchall() результатом являются все строки отвечающие критерию запроса. Результат возвращается в виде СПИСКА КОРТЕЖЕЙ. Если данные отсутствуют - возвращается пустой СПИСОК

НЕЛЬЗЯ взять список кортежей, сказать ему - ну кароче ты строка и получить валидные данные.
По ссылке что я вам дал детально показано в каком виде и какого типа приходят данные.

Вы же хотите
 answer = str([(),(),()])
А потом удивляетесь что вылазят какие-то косяки.
Это вы еще не работали с нормальными данными и выборками
Так что гуглим как список кортежей преобразовать в строку
m1r42
ZerG
Вы же хотите

answer = str()
А потом удивляетесь что вылазят какие-то косяки.
Это вы еще не работали с нормальными данными и выборками
Так что гуглим как список кортежей преобразовать в строку

Да, я бы хотел преобразовать этот ответ в строку, потому, что я не вижу здесь СПИСКА КОРТЕЖЕЙ

[{'neispr': ‘ТЕКСТ\nТЕКСТ\nТЕКСТ’}[

да, тип действительно list, но больше похоже на словарь dict и самое забавное, что str то работает, а вот все остальные попытки преобразовать ЭТО в строку провалились


m1r42
Кстати еще одно забавное поведение Python. При запросе из базы и получении пустого значения тип данных КОРТЕЖ, а если значение не пустое, то тип данных ЛИСТ, что это за чудеса?

succesfully connected…3
1
succesfully connected…1
1128
() <class ‘tuple’>
<class ‘str’>
<class ‘str’>

succesfully connected…6
succesfully connected…1
1127
<class ‘list’>
<class ‘str’>
<class ‘str’>
m1r42
ZerG
НЕЛЬЗЯ взять список кортежей, сказать ему - ну кароче ты строка и получить валидные данные.
Почему нельзя? Как раз когда я говорю - “ты строка”, вот этой конструкции - “[{все что угодно}[”
 answer = str([{все что угодно}])
действительно это становится строкой, но в этой строке вместо символов \n почему-то \\n, все остальное в норме
xam1816
m1r42
но в этой строке вместо символов \n почему-то \\n
так задумано, чтобы было видно перенос строки как знак, а не как перенос строки в действительности.
m1r42
Почему нельзя? Как раз когда я говорю - “ты строка”, вот этой конструкции - “[{все что угодно}[”
Вопрос вам, почему вы не сделаете так
  
answer2 = [{'neispr': 'Специально проверяю. Как это работает.\nСледующая строка.\nТретья строка.'}]
text = answer2[0]['neispr']
print(text)
m1r42
xam1816
Вопрос вам, почему вы не сделаете так

Спасибо за ваш ответ. Наконец-то докопался до истины. Пытался делать так, но так как была еще одна ошибка в программе, точнее даже не ошибка, а недоработка, то эта схема не работала.
У меня был запрос к базе с возвратом пустого значения при запуске программы, поэтому тип у answer2 был None <class ‘NoneType’> . По этой причине конструкция ни как не хотела работать.
m1r42
Всех участников дискуссии благодарю за помощь. Я бы и сам разобрался со временем, но общение на форуме очень ускоряет обучение и работу. Надо будет подтянуть знания по типам данных в Python.
m1r42
Остался один вопрос у меня. Почему все работает, но при этом тип ответа list?
 sql8="SELECT `neispr` FROM `kvt` WHERE `nom` = '"+nom+"';"
 cursor.execute(sql8)
 answer2 = cursor.fetchall()
 print(answer2,type(answer2))
 neispr = answer2[0]['neispr']

При этом всем print выдает тип list:
 [{'neispr': 'Теперь все работает как надо.\nВот это правильно!'}] <class 'list'>
Разве тип list не должен выглядеть как-то так ?
 [(),(),()]
Откуда взялись фигурные скобки в ответе?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB