Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/103: Рейтинг темы: голосов - 103, средняя оценка - 4.89
115 / 23 / 3
Регистрация: 11.09.2017
Сообщений: 141
Записей в блоге: 4

Как убрать кавычки из массива?

11.07.2019, 16:33. Показов 22400. Ответов 12

Студворк — интернет-сервис помощи студентам
Доброго времени суток, друзья. Столкнулся с такой проблемой, что работаю с БД. Оттуда выгружаю данные, но при выгрузке текстовых значений появляются кавычки. Как от них избавляются, подскажите.
Python
1
2
3
4
5
cur.execute("select * from area where number<5;")
data = cur.fetchall() #[(1, 'Бабаевский'), (3, 'Белозерский'), (4, 'Вашкинский')]
print(data[0][1])
# ожидается Бабаевский
# выводит 'Бабаевский'
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.07.2019, 16:33
Ответы с готовыми решениями:

Как убрать кавычки из названия элемента списка?
import os filename = os.listdir('c:\\Files\\Text1') file = open(filename) Выдаёт ошибку Traceback (most recent call last): ...

Как убрать из списка все квадратные скобки и кавычки?
Я выводила построчно список студентов из конкретной группы. my_len = ],],]] for i in my_len: if...

Как убрать кавычки?
У меня вот такой вот кусок кода на РНР mysqli_query($link, &quot;INSERT INTO messages(msg, user) values('$message', '$_SESSION')&quot;);, как...

12
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.07.2019, 17:03
tabbols95, так это ж строка, вот и апострофы (кавычки это вот -" ")
если критично при выводе, то можно так
Python
1
print(f'{data[0][1]}')
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.07.2019, 17:58
Цитата Сообщение от tabbols95 Посмотреть сообщение
Как от них избавляются, подскажите.
Не надо от них избавляться.

Все это - одно и тоже:
Python
1
2
3
4
5
6
7
8
9
>>> "привет"
'привет'
>>> repr('привет')
"'привет'"
>>> str('привет')
'привет'
>>> print('привет')
привет
>>>
просто это разные варианты конечной репрезентации строки.

Добавлено через 6 минут
Кстати, вы похоже, сами эту репрезентацию и изменили - раз print тоже в кавычках выводит.
Если в классе переопределен умолчательный метод вывода строки - будет вот так:
Python
1
2
3
>>> print(repr('привет'))
'привет'
>>>
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
11.07.2019, 18:38
tabbols95, Если бы у Вас data содержала бы
Python
1
[(1, 'Бабаевский'), (3, 'Белозерский'), (4, 'Вашкинский')]
то выводилось бы без кавычек. Как правильно говорит Garry Galler, у Вас программа где то дополнительно к одинарным кавычкам (апострофам) добавляет еще и двойные кавычки (двойные апострофы).
Использование
Python
1
print(f'{data[0][1]}')
Вам не поможет. Все выше сказанное демонстрирует пример:
Python
1
2
3
4
5
6
7
8
9
10
11
12
data = [(1, 'Бабаевский'), (3, 'Белозерский'), (4, 'Вашкинский')]
print(data[0][1])
 
print('*' * 50)
 
data = [(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
print(data[0][1])
 
print('*' * 50)
 
data = [(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
print(f'{data[0][1]}')
Выводит:
Python
1
2
3
4
5
Бабаевский
**************************************************
'Бабаевский'
**************************************************
'Бабаевский'
Отсюда следует, что Вам для решения Вашей задачи, как правильно заметил Garry Galler, нужно разобраться с Вашим кодом, что бы в переменную data поступал список без лишних кавычек, то есть поступало
Python
1
[(1, 'Бабаевский'), (3, 'Белозерский'), (4, 'Вашкинский')]
а не
Python
1
[(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
Добавлено через 8 минут
Или, что бы как опять же правильно заметил Garry Galler, если Вы используете классы, и у Вас присутствует метод
перегрузки __repr__, который перехватывает вывод инструкцией printer , то нужно правильно использовать этот метод.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.07.2019, 19:57
Цитата Сообщение от Viktorrus Посмотреть сообщение
Вам не поможет.
еще как поможет, в питоне 3.7.0 на макос и 3.7.3 на винде прекрасно работает, как в консоли, так и в пичарме, без всяких проблем

Цитата Сообщение от Garry Galler Посмотреть сообщение
Если в классе переопределен умолчательный метод вывода строки - будет вот так:
в каком? Автор вызывает у курсора fetchall и сразу выводит, никаких объектов не задействовано

tabbols95, или фетчОлл у тебя возвращает не то что в комменте (а разве не кортеж кортежей?) или даже не знаю, у меня на разных питонах и осях все нормально.

0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.07.2019, 20:04
Цитата Сообщение от Welemir1 Посмотреть сообщение
Автор вызывает у курсора fetchall и сразу выводит, никаких объектов не задействовано
Вот это и странно. Либо ТС нас ввел в заблуждение и на самом деле у него
Python
1
2
3
>>> data = [(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
>>> print(data[0][1])
'Бабаевский'
- здесь кавычки в принте закономерны. И убирать их надо не здесь - так сказать, постфактум, а там, где он их лишний раз проставил.
Либо у него странным образом вместо str стал использоваться repr для вывода строк.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
11.07.2019, 20:30
Цитата Сообщение от Welemir1 Посмотреть сообщение
3.7.3 на винде прекрасно работает
Так так и нужно было писать, "Установите версию 3.7.3 и используйте
Python
1
print(f'{data[0][1]}')
что бы не вводить людей в заблуждение.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.07.2019, 20:34
Цитата Сообщение от Garry Galler Посмотреть сообщение
где он их лишний раз проставил.
хм, слушай, может они у него в бд с кавычками?... в общем желателен скрин от автора где видно в дебаггере что конкретно пришло в дата, ну и версию питона бы узнать.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.07.2019, 00:23
tabbols95, Если нельзя избавится от лишних кавычек по ходу программы, как я понял Вы данные получаете из базы данных, то убрать лишние кавычки перед печатью, что будет работать с любой версией 3.Х , можно добавив следующий фрагмент кода перед печатью
Python
1
2
3
4
5
6
7
data = [(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
L = []
for ch in data[0][1]:
    if ord(ch) != 39:
        L.append(ch)
s = ''.join(L)
print(s)
Выводит без кавычек. Может кто нибудь предложит более элегантный вариант, как убрать лишние кавычки.

Добавлено через 18 минут
А вот так будет компактнее в одну строчку
Python
1
2
3
#data = [(1, "'Бабаевский'"), (3, "'Белозерский'"), (4, "'Вашкинский'")]
 
print(data[0][1].split("'")[1])
Но этот вариант будет работать, только если внутри выводимой строки не будет апострофа, иначе строка будет обрезана.

Добавлено через 2 минуты
И еще. Это у Вас будет работать, только если у вас каким либо образом не срабатывает repr .

Добавлено через 6 минут
А вообще, выше верно заметили, что для того, что бы дать конкретную рекомендацию, нужно видеть весь код, а не его фрагмент. Что бы можно было проанализировать его с помощью отладчика.

Добавлено через 12 минут
И еще одно замечание. Если у Вас кавычки идут в другом порядке, а именно так
Python
1
[(1, '"Бабаевский"'), (3, '"Белозерский"'), (4, '"Вашкинский"')]
то строка должна быть такая
Python
1
print(data[0][1].split('"')[1])
Добавлено через 4 минуты
Хотя в этом случае, в Вашем варианте вывод был бы таким "Бабаевский". Поэтому скорее всего у Вас первый вариант чередования кавычек.

Добавлено через 33 минуты
Для информации
Python
1
2
3
4
5
6
7
8
>>> ord('"')   # двойной апостров в латинице
34
>>> ord('"')   # двойные кавычки в кириллице (раскладке клавиатуры)
34
>>> ord("'")   # апостроф в латинице
39
>>>            # в кирилице одинарной кавычки нет (я не нашел), # поэтому при необходимости
>>>            # используется апостров из латиницы
0
115 / 23 / 3
Регистрация: 11.09.2017
Сообщений: 141
Записей в блоге: 4
12.07.2019, 07:56  [ТС]
Viktorrus, я привел полностью текст программы, только лишь не указал connect к БД и как я объявляю cursor
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
12.07.2019, 08:24
tabbols95, Все нормально в выводе
Миниатюры
Как убрать кавычки из массива?  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.07.2019, 09:14
tabbols95, можешь вот такой же скрин(как выше приводили) сделать где видно печать твоих кавычек?
и еще один желательно, где стоит бряка на строке с датой и в отладчике видно что туда пришло.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.07.2019, 11:36
Цитата Сообщение от tabbols95 Посмотреть сообщение
я привел полностью текст программы, только лишь не указал connect к БД и как я объявляю cursor
А какая проблема выложить весь код полностью, раз он не такой большой?
И потом, Вы работаете с отладчиком? Какое содержимое переменной data показывает отладчик в пошаговом режиме, перед выводом на печать. Так как то, что показали Вы не может быть значением переменной data . При таком содержимом data вывод был бы без кавычек.
И укажите версию Вашего питона, это тоже может влиять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2019, 11:36
Помогаю со студенческими работами здесь

Как убрать кавычки из строки?
Подскажите, пожалуйста, как убрать все кавычки(&quot;) из строки? s= 'string &quot;with&quot; q&quot;uotes'

Как убрать кавычки , не могу их найти
Вот так во вкладке браузера выглядит название страницы. Где эти кавычки, найти не могу. Выручайте.

Как убрать кавычки из заголовка записи
помогите убрать кавычки из заголовка записи. См. скрин. Пере ковырял уже все.

Как убрать кавычки из вывода Arrays.tostring?
Здравствуйте! Задался вопросом, как убрать кавычки (которые еще и развернулись наизнанку после насилия над ними reverse из вывода вообде...

Split,Regex. Как убрать кавычки в результирующем массиве
Добрый день. Нашел данный код здесь на форуме https://www.cyberforum.ru/csharp-net/thread14199.html. Работает почти как надо, но мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru