import pandas as pd
import os
from read_pgdata import Postgredata
root_dir = r'root'
file_names = os.listdir(root_dir)[:-1]
print(len(file_names), file_names)
pg = Postgredata()
for i in range(len(file_names)):
df = pd.read_excel(root_dir + '\\' + file_names[i], index_col=None, header=None)
dataset = df.loc[2::].values
data = []
for k in dataset:
k = list(k)
# print(k)
data.append(k)
print(data)
# print(list(data[j]))
sql = "INSERT INTO ship_trail (mmsi,longitude,latitude,time,speed,shiphead,heading) VALUES (%s,%s,%s,%s,%s,%s,%s)"
pg.insertManyRow(strings=data, query=sql) #插入用insertManyRow函數(shù)
import psycopg2
import json
# import pandas as pd
# 從postgresql獲取數(shù)據(jù)
class Postgredata():
def __init__(self):
self.dbname = ""
self.user = ""
self.password = ""
self.host = ""
self.port = ""
def getdata(self,query=None):
try:
conn=psycopg2.connect(dbname=self.dbname, user=self.user, password=self.password, host=self.host, port=self.port)
cursor = conn.cursor()
try:
cursor.execute(query)
data=cursor.fetchall()
if len(data)==0:
print('沒有查到數(shù)據(jù)')
return data
else:
return data
except Exception as e:
print(e)
print('查詢錯(cuò)誤')
except Exception as e:
print(e)
print('連接失敗')
finally:
conn.close()
def setdbname(self, dbname=None):
self.dbname = dbname
def getdbname(self):
return self.dbname
def getuser(self):
return self.user
def setuser(self, user=None):
self.user = user
def getpassword(self):
return self.password
def setpassword(self, password):
self.password = password
def gethost(self):
return self.host
def sethost(self, host=None):
self.host = host
def getport(self):
return self.port
def setport(self, port=None):
self.port = port
def savedata(self, query=None):
#connection.commit()
#connection.rollback()
try:
conn=psycopg2.connect(dbname=self.dbname, user=self.user, password=self.password, host=self.host, port=self.port)
cursor = conn.cursor()
try:
cursor.execute(query)
conn.commit()
except Exception as e:
print(e)
print('保存失敗')
except Exception as e:
print(e)
print('連接失敗')
finally:
conn.close()
def insertManyRow(self, strings, query=None):
# 這里就不需要遍歷了,因?yàn)閑xecutemany接受
# for index in range(len(rows)):
try:
conn = psycopg2.connect(dbname=self.dbname, user=self.user, password=self.password, host=self.host,
port=self.port)
cur2 = conn.cursor()
# sql2 = "INSERT INTO test(字段1,字段2,字段3,字段4,字段5) VALUES(%s,%s,%s,%s,%s)"
cur2.executemany(query, strings)
conn.commit()
conn.close()
except Exception as e:
print("執(zhí)行sql時(shí)出錯(cuò):%s" % (e))
# conn.rollback()
conn.close()
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
