Python'float64'无法转换为MySQL类型

时间:2018-12-11 15:54:23

标签: python mysql

我正在尝试使用python脚本在MYSQL工作台数据库中存储一些数据,但是当我尝试在数据库中插入(anomaly_low,anomaly_medium,anomaly_high)时出现以下错误。

Failed processing format-parameters; Python 'float64' cannot be converted to a MySQL type.

实际上,我是从数据库中提取一些数据并将其作为函数的参数提供的。并且,将函数返回的值用于另一个查询。我的代码是:

 import numpy as np
 import matplotlib
 import skfuzzy as fuzz
 from skfuzzy import control as ctrl
 from matplotlib import pyplot as plt
 import mysql.connector
 from mysql.connector import Error
 from mysql.connector import errorcode
 import time
 import datetime

 try:
    connection = mysql.connector.connect(host='1111',
                                       database='x',
                                       user='x',
                                       password='xx')
cursor = connection.cursor(buffered=True)
anomaly = (a.compute_anomaly(85, 5))
print(anomaly) 
test = str(a.get_anomaly(anomaly))[1:-1]
print(test)
t = test.split(',')
anomaly_low = t[0]
anomaly_medium = t[1]
anomaly_high = t[2]
print (anomaly_low )
print (anomaly_medium ) 
print (anomaly_high ) 
ts = time.time()
timestamp = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d 
 %H:%M:%S')


 #insert data to fuzzy_anomaly
sql_anomaly = "INSERT INTO fuzzy_anomaly(anomaly,anomaly_low, 
anomaly_medium, anomaly_high,timestamp)  VALUES (%s,%s,%s,%s,%s)"

input = (anomaly, anomaly_low, anomaly_medium, anomaly_high,timestamp)
cursor.execute(sql_anomaly , input, multi=True)
connection.commit()

print("1 record inserted, ID:", cursor.lastrowid)

except mysql.connector.Error as error :
    print("Failed to update record to database: {}".format(error))
    connection.rollback()
finally:
    #closing database connection.
    if(connection.is_connected()):
        connection.close()
        print("MySQL connection is closed")

这些是我数据库中我的字段/列名称。我正尝试将anomalyanomaly_lowanomaly_mediumanomaly_hightimestamp数据插入MYSQL。

enter image description here

但是,当我手动为compute_anomaly(arg1, arg2)函数提供参数并删除第一个查询(input_fuzzy)时,错误消失了。 任何想法?预先感谢。

0 个答案:

没有答案