Форум сайта python.su
Может быть проблема вообще в get когда я получаю данные из поля Text и сохраняю в базу?
neispr = e7.get('1.0','end') length = len(str(neispr)) neispr = str(neispr)[0:length-2]
Отредактировано m1r42 (Июль 26, 2022 12:56:58)
Офлайн
FishHookНо ведь не работает даже когда тип str во втором print
ну, разумеется, тип будет str, потому что вы предыдущей строкой значение кастанули к str. Проверьте типы до всяческих преобразований
Отредактировано m1r42 (Июль 26, 2022 13:00:22)
Офлайн
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([(),(),()])
Офлайн
ZerG
Вы же хотите
answer = str()
А потом удивляетесь что вылазят какие-то косяки.
Это вы еще не работали с нормальными данными и выборками
Так что гуглим как список кортежей преобразовать в строку
Отредактировано m1r42 (Июль 26, 2022 14:08:33)
Офлайн
Кстати еще одно забавное поведение 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’>
Офлайн
ZerGПочему нельзя? Как раз когда я говорю - “ты строка”, вот этой конструкции - “[{все что угодно}[”
НЕЛЬЗЯ взять список кортежей, сказать ему - ну кароче ты строка и получить валидные данные.
answer = str([{все что угодно}])
Отредактировано m1r42 (Июль 26, 2022 15:33:29)
Офлайн
m1r42так задумано, чтобы было видно перенос строки как знак, а не как перенос строки в действительности.
но в этой строке вместо символов \n почему-то \\n
m1r42Вопрос вам, почему вы не сделаете так
Почему нельзя? Как раз когда я говорю - “ты строка”, вот этой конструкции - “[{все что угодно}[”
answer2 = [{'neispr': 'Специально проверяю. Как это работает.\nСледующая строка.\nТретья строка.'}] text = answer2[0]['neispr'] print(text)
Офлайн
xam1816
Вопрос вам, почему вы не сделаете так
Офлайн
Всех участников дискуссии благодарю за помощь. Я бы и сам разобрался со временем, но общение на форуме очень ускоряет обучение и работу. Надо будет подтянуть знания по типам данных в Python.
Офлайн
Остался один вопрос у меня. Почему все работает, но при этом тип ответа list?
sql8="SELECT `neispr` FROM `kvt` WHERE `nom` = '"+nom+"';" cursor.execute(sql8) answer2 = cursor.fetchall() print(answer2,type(answer2)) neispr = answer2[0]['neispr']
[{'neispr': 'Теперь все работает как надо.\nВот это правильно!'}] <class 'list'>
[(),(),()]
Офлайн