上代码
#coding=utf-8
import pymysql
import datetime
import time
import random
#获取当天日期格式化输出
date1 = datetime.datetime.now().strftime("%Y%m%d")
# 获取当天0点的时间戳
today_stamp=int(time.mktime(datetime.date.today().timetuple()))
# 获取当前的创建时间格式化输出
time1 = "'"+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")+"'"
class Insert():
#初始化属性
def __init__(self):
self.host = "ip"
self.port = 3306
self.user = "root"
self.passwd = "root"
self.charset = "utf8mb4"
self.db = "数据库名"
self.table = "表名"
self.cross_code = "'"+"1111111111111111"+"'"
self.branch_code = "'"+"2222222222"+"'"
#连接数据库
def cursor(self):
connection =pymysql.connect(
host=self.host,
port=self.port,
user=self.user,
passwd=self.passwd,
db=self.db,
cursorclass=pymysql.cursors.DictCursor,
autocommit=True
)
return connection
def query(self):
"""获取mysql中最后一个id,并返回"""
try:
sql = f"SELECt id from {self.table} ORDER BY id desc LIMIT 1;"
cursor = self.cursor().cursor()
cursor.execute(sql)
results =cursor.fetchall()
if not results :
return 0
else:
id = results[0]['id']
return id
except IndentationError as error:
print(error)
self.cursor().close()
"""往数据库中批量插入数据"""
def Linesinsert(self):
"""一天有1440分钟,共288个5分钟"""
for i in range(0, 10):
j = today_stamp * 1000 + (i*300000)
"""从当天0点开始的时间戳转为时间格式(如10整:100000)"""
otherStyleTime = int(time.strftime("%H%M%S", time.localtime(j/1000)))
ram = random.random()
print("第%d条数据"%i)
try:
# 创建MySQL连接、并且获取游标
cursor = self.cursor().cursor()
#sql命令
sql =f"INSERT INTO `aitpm_nanning`.{self.table}(`id`, `begin`, `created_date`, `date`, `end`, `period`, `time`, `value`, `branch_code`, `cross_code`, `dimension`, `turn`, `sum_period`, `sum_value`)"
f" VALUES ({self.query()+1}, {j}, {time1}, {date1}, {j+300000}, 'P5', {otherStyleTime}, {ram}, {self.branch_code}, {self.cross_code}, 'BRANCH', NULL, 1, {ram});"
cursor.execute(sql)
except Exception as e :
print(e)
finally:
#关闭游标
cursor.close()
#提交
self.cursor().commit()
#关闭数据库连接
self.cursor().close()
print(sql)
if __name__ == '__main__':
a = Insert()
a.Linesinsert()
a.query()



