Я пытаюсь прочитать значения из моего MySQL db и хранить их в dict в Python с помощью соединителя mysql. Мой db имеет 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'
Как вы можете видеть, сохраняются только целые числа, но мне нужны поплавки. Спасибо за помощь!
Я объявлял переменные как Decimal в MySQL, что заставляет python принимать правильное значение. К сожалению, я не могу объяснить, почему это не работает, если я объявляю их Float
Это возможно из-за того, как вы выводите значения tp
. Вы уверены, что не используете %d
для отображения значений float?
Другими словами, попробуйте запустить print(["tp[%d,%d]=%4.2f\n"%(i, j, tp[i,j]) for я in range(1, 3) for j in range(1, 4)])
Обратите внимание на %4.2f
, это используется для отображения поплавков
describe table test