通过python连接MySQL并为变量赋值时,数据类型从“int”变为“tuple”

通过python连接MySQL并为变量赋值时,数据类型从“int”变为“tuple”,python,mysql,tuples,connector,fetchall,Python,Mysql,Tuples,Connector,Fetchall,python和mysql都比较新 我已经解决了这个问题,但想知道原因。如果在将值分配给变量后使用“逗号”,那么它将下一个数据类型从“int”更改为“tuple”。因为它不是。如果我在每一行后面省略“逗号”,那么数据类型将保留为强制转换。在这两种情况下,code exec没有“异常” DB输入数据类型为:func_Name为varchar、nbin为int、winWidth为int、ashFilt为varchar等 守则的一部分:- cursor.execute("SELECT * FROM fu

python和mysql都比较新

我已经解决了这个问题,但想知道原因。如果在将值分配给变量后使用“逗号”,那么它将下一个数据类型从“int”更改为“tuple”。因为它不是。如果我在每一行后面省略“逗号”,那么数据类型将保留为强制转换。在这两种情况下,code exec没有“异常”

DB输入数据类型为:func_Name为varchar、nbin为int、winWidth为int、ashFilt为varchar等

守则的一部分:-

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'>

有人能解释一下原因吗

在值之后使用逗号将创建一个元组。我已经用python2和pytho3再次测试了您的代码。你需要再检查一遍。

是的,我看到了。当我去掉“逗号”时,数据类型与我所希望的或预期的一样。逗号使int成为元组。虽然str仍然是str。不,我已经用str进行了测试,它也会生成一个元组。你可以试试这个测试:y=str1,;印刷字体是什么?但在去掉每行末尾的逗号后,尽管保持了该类型,但它还是像预期的那样以“int”、“str”的形式出现。使用该值,主程序也可以正常工作。不过还是要谢谢你的时间和建议。我会测试你的,让你知道。