Читайте Float из MySQL в словарь с Python - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь прочитать значения из моей базы данных MySQL и сохранить их в dict в Python, используя соединитель mysql.Мой БД имеет 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 голосов
/ 11 июня 2018

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

0 голосов
/ 17 мая 2018

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

...