我正在尝试使用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")
这些是我数据库中我的字段/列名称。我正尝试将anomaly
,anomaly_low
,anomaly_medium
,anomaly_high
,timestamp
数据插入MYSQL。
但是,当我手动为compute_anomaly(arg1, arg2)
函数提供参数并删除第一个查询(input_fuzzy
)时,错误消失了。
任何想法?预先感谢。