Python Tkinter Mysql оператор select возвращает фигурные скобки вокруг строки - PullRequest
0 голосов
/ 26 января 2019

Я динамически заполняю текст кнопки в tkinter из значений в базе данных mysql.

Отдельные слова отображаются хорошо, но строки с более чем одним словом отображаются с фигурными скобками вокруг них. Я не уверен, что это потому, что они рассматриваются как кортеж или какой-либо другой нестроковый тип данных.

У меня такое ощущение, что Mysql хранит данные, но не уверен, как их обрабатывать на входе или выходе, чтобы избежать этого.

Любая помощь будет оценена.

Вот запрос на выборку в Mysql. Данные таблицы

Вот оператор выбора:

def getChannelName(channel):
    mydb = mysql.connector.connect(
        host=DBHost,
        user=Uname,
        passwd=Pword,
        database=Dbase
    )
    mycursor = mydb.cursor(buffered=True)
    sql = "SELECT InputName FROM tbl_input WHERE tbl_input.InputChannel = '%s'" % (channel)
    mycursor.execute(sql) 
    r = mycursor.fetchone()
    mycursor.close()
    del mycursor
    return r

РЕДАКТИРОВАТЬ: я добавил print (r) непосредственно перед "return r", чтобы показать значения из БД. SELECT query result

Здесь вызывается запрос на выборку:

def initChannelNames(activeInputs):
# Read all the ADC channel names in a list 
    inputs = [0]*activeInputs
    for index in range(len(inputs)):
        inputs[index] = getChannelName(index)
    return inputs

Здесь я использую данные. Я создаю кнопки динамически и использую запрашиваемые данные в качестве текста кнопки.

inputs = initChannelNames(activeInputs)
#set the selectors
for index in range(len(inputs)):
    Button(selectorStackContainer, text=inputs[index], image=ledImg, width=Button_w, height=Button_h, command=callback, font=("Courier", 11), bg='grey', fg='black', compound = "left", anchor="w").grid(row=index, sticky="w")

И, наконец, вот что отображается на кнопках: Output on the GUI

...