我具有以下功能:
import datetime
import math
from mysqlx import errorcode
import TechnicalAnalysisFunctions as TAFun
import mysql.connector
import pandas as pd
import mysql.connector
def write_to_high_price_table(ticker):
data = TAFun.getDataFromCSV(ticker, data="Highprice")
dates = data.index.astype('str')
prices = data.values
records_to_insert = [(float(prices[0]), str(ticker[0]), datetime.datetime.strptime(dates[0], '%Y-%m-%d'))]
for i in range(1, len(data.values)):
records_to_insert.append((float(prices[i]), str(ticker[0]), datetime.datetime.strptime(dates[i], '%Y-%m-%d')))
try:
connection = mysql.connector.connect(host='localhost',
database='Stocks',
user='root',
password=_password)
sql_insert_query = """ INSERT INTO HighPrice ( HighPrice, Ticker, Date) VALUES (%s,%s,%s) """
cursor = connection.cursor(prepared=True)
# used executemany to insert 3 rows
cursor.executemany(sql_insert_query, records_to_insert)
connection.commit()
print(cursor.rowcount, "Record inserted successfully into python_users table")
except mysql.connector.Error as error:
print("Failed inserting record into python_users table {}".format(error))
finally:
# closing database connection.
if connection.is_connected():
cursor.close()
connection.close()
print("connection is closed")
我正在收到PyCharm的警告,因为连接和游标在分配前可能已被引用。我想知道如何正确摆脱这些警告。我无法在期望主体中添加连接和光标,因为这些可能是造成此错误的行。同时,我无法在try-body中包含close语句,因为在打开和关闭连接之间可能会出现错误。在这种情况下,连接将永远不会关闭。