使用Python将MySQL中的Float读入字典

时间:2018-05-17 06:33:43

标签: python mysql mysql-connector

我正在尝试从MySQL数据库读取值,并使用mysql连接器将它们存储在Python的dict中。 我的数据库有3列(MDK, JT, tp),看起来像这样:

`1   1  1.9
 1   2  1.77
 1   3  2.5
 2   1  1.9
 2   2  1.77
 2   3  2.5 `

到目前为止我试过了:

import mysql
import mysql.connector

conn = mysql.connector.connect(....)

mycursor = conn.cursor(dictionary = True)

query = ("SELECT * FROM 'test'")

mycursor.execute(query)

tp = {}

for row in mycursor:
  tp[row["MDK"], row["JT"]] = float(row["tp"])
  
mycursor.close()
  

目前在dict中保存的值是:

`tp[1,1] = 1
 tp[1,2] = 1
 tp[1,3] = 2
 tp[2,1] = 1
 tp[2,2] = 1
 tp[2,3] = 2`

如您所见,只保存整数,但我需要浮点数。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

这可能是因为您输出tp的值。您确定没有使用%d来显示浮动值吗?

换句话说,试试跑步吧 print(["tp[%d,%d]=%4.2f\n"%(i, j, tp[i,j]) for i in range(1, 3) for j in range(1, 4)]) 注意%4.2f,这用于显示浮动

答案 1 :(得分:0)

我在MySQL中将变量声明为Decimal,这导致python接受正确的值。不幸的是,如果我将它们声明为Float

,我无法解释为什么它不起作用