Через python при подключении MySQL и назначении значений переменным, тип данных изменился с 'int' на 'tuple' - PullRequest
0 голосов
/ 15 февраля 2020

Сравнительно новый в python и mysql.

Я решил проблему, но хочу знать причину. Если после присвоения значений переменным я использую «запятую», то следующий тип данных меняется с «int» на «tuple». Для жала это не так. Если я опускаю 'запятую' после каждой строки, то тип данных остается, когда они преобразуются. В обоих случаях код exe c без исключения.

Тип входных данных БД: func_Name как varchar, nbin как int, winWidth как int, ashFilt как varchar et c.

часть кода: -

cursor.execute("SELECT * FROM func_table;")
tab_funcTab = cursor.fetchall()
    print("parameters in [func_table]: ", cursor.rowcount)
    for row in tab_funcTab:
        funcName =      (str(row['func_Name'])), # <- this commas
        nbin =          (int(row['nbin'])), # <- this commas
        winWid =        (int(row['winWidth'])),
        ashFilt =       (str(row['ashFilt']))

     print(tab_funcTab)
     [{'id': 1, 'func_Name': 'all', 'nbin': 100, 'winWidth': 5, 'ashFilt': 'biweight']   

     print(type(funcName), type(nbin), type(winWid), type(ashFilt))
     <class 'str'> <class 'tuple'> <class 'tuple'> <class 'str'>

Может ли кто-нибудь объяснить причину?

1 Ответ

1 голос
/ 15 февраля 2020

Использование запятой после значения в точности создаст кортеж. Я снова проверил ваш код как с python2, так и с 3. Вы должны проверить его еще раз.

...