Postgresql 数据库操作类

# -*- coding: utf-8 -*-

'''
Postgresql 数据库操作类
'''
import psycopg2
import json
# import pandas as pd

# 从postgresql获取数据
class Postgredata():
    def __init__(self):
        self.dbname = "----"
        self.user = "-----"
        self.password = "-----"
        self.host = "--------"
        self.port = "5432"

    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('没有查到数据')
                    return data
                else:
                    return data
            except Exception as e:
                print(e)
                print('查询错误')
        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()

pg = Postgredata()
query = 'select * from ship_info_trail_normal'
data_list = pg.getdata(query=query)

# print(len(data_list), type(data_list[0]),data_list[0][1])
# import json
# print(json.loads(data_list[0][1])["data"])

li = []
for i in range(len(data_list)):
    data_json = json.loads(data_list[i][1])["data"]
    s = [[str(json.loads(data_list[i][0]))], [float(data_json[0]['lng']),float(data_json[0]['lat'])], [float(data_json[-1]['lng']),float(data_json[-1]['lat'])]]
    li.append(s)

label1 = []
for j in range(len(li)):
    li1 = li[j]
    li2 = li[:j]+li[j+1:]
#     len(new_li),new_li
    label2 = []
    for i in range(len(li2)):
        if abs(li2[i][1][0]-li1[1][0])<2 and abs(li2[i][1][1]-li1[1][1])<2 and abs(li2[i][2][0]-li1[2][0])<2 and abs(li2[i][2][1]-li1[2][1])<2:
            label2.append(str(li2[i][0][0]))
    li[j].append(label2)
    print(li[j])
    label1.append(label2)

pg = Postgredata()
for i in range(len(li)):
    print(li[i][3])
    same = li[i][3]
#     same = ','.join(same)
    dict={}
    dict['result']=same
    json_data = json.dumps(dict) #转成字典,存成json格式
    print(json_data)
    id = li[i][0][0]
#     id = ','.join(id)
    querys = 'update ship_info_trail_normal_copy1 set same_id=\'' + json_data  + '\' where shipid=\'' + str(id)+ '\''  #注意转义字符
    print(querys)
    pg.savedata(query=querys) #更新用savedata函数


# columns = ['shipid','ship_trail','a_timestamp']
# data_df = pd.DataFrame(columns=columns, data=data_list)
# data_df.to_csv('ship_info_trail_normal.csv', encoding='utf-8', index=False)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值