Избавьтесь от скобок при отображении результатов запроса sql в окне списка (Tkinter и Python) - PullRequest
0 голосов
/ 03 апреля 2020

Я создаю приложение, в котором люди просто вводят данные в базу данных, и они могут извлекать свои данные путем поиска. Я использую sqlite 3 и Tkinter в python для создания этой программы. Когда я ищу данные, и они отображаются в окне списка Tkinter, они отображаются следующим образом: {Боб Джонс} name@email.com {Джон Джонс}

Как отобразить запрос без этих фигурных скобок?

Код внутреннего интерфейса:

def search(parent_email=""):
    conn=sqlite3.connect("parentsevening.db")
    cur=conn.cursor()
    cur.execute("SELECT * FROM bookings WHERE parent_email=? ORDER BY app_time", (parent_email,))
    rows=cur.fetchall()
    conn.close()
    return rows

Код внешнего интерфейса:

def search_command():
    list1.delete(0,END)
    for row in parents_backend.search(parent_email.get()):
        list1.insert(END,row)

1 Ответ

0 голосов
/ 03 апреля 2020

Вы вставляете список python в список, но метод вставки ожидает строку. Вы несете ответственность за преобразование данных в строку перед вставкой данных. Если вы не выполните явное преобразование, tkinter выполнит преобразование за вас. Это может привести к появлению скобок в данных из-за того, что базовый интерпретатор tcl будет использовать свой собственный синтаксис для сохранения структуры списка исходных данных.

Например, если вы хотите, чтобы элементы в списке отображались с пробелами между ними вы можете использовать join:

list1.insert(END, " ".join(row))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...