Читайте Float из MySQL в словарь с Python

0

Я пытаюсь прочитать значения из моего 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'

Как вы можете видеть, сохраняются только целые числа, но мне нужны поплавки. Спасибо за помощь!

  • 0
    Вставить в вывод describe table test
  • 0
    что вы имеете в виду именно под этим?
Показать ещё 2 комментария
Теги:
mysql-connector

2 ответа

0
Лучший ответ

Я объявлял переменные как Decimal в MySQL, что заставляет python принимать правильное значение. К сожалению, я не могу объяснить, почему это не работает, если я объявляю их Float

0

Это возможно из-за того, как вы выводите значения 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, это используется для отображения поплавков

  • 0
    Нет, я так не думаю, потому что вычисления, которые я делаю позже и которые основаны на этих словарях, также принимают только целочисленное значение и, следовательно, не являются точными

Ещё вопросы

Сообщество Overcoder
Наверх
Меню