Python 使用psycopg2批量插入PG库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import psycopg2
 
conn = psycopg2.connect(database="sdp", user="kiki", password="123", host="", port="5432")
cursor = conn.cursor()
stats_sql = "select max(a) from table_a group by vin"
cursor.execute(stats_sql)
res_rows = cursor.fetchall()
tp_arr = []
simple = {}
for row in res_rows:
    for item in row:
        # 处理行数据
        for res in eval(item):
            if len(simple) == 0:
                simple = res
            tp = tuple(res.values())
            tp_arr.append(tp)
cols = ", ".join('{}'.format(k) for k in simple.keys())
val_cols = ','.join('%s'.format(v) for v in simple.keys())
sql = "insert into temp.table_b (%s) values (%s)"
insert_sql = sql % (cols, val_cols)
cursor.executemany(insert_sql, tp_arr)
conn.commit()
conn.close()

  # 结果返回为字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import psycopg2
  
def get_data(database_info,sql):
    conn = psycopg2.connect(database=database_info["database"],
                            user=database_info["user"],
                            password=database_info["password"],
                            host=database_info["host"],
                            port=database_info["port"])
    cur = conn.cursor()
    try:
        cur.execute(sql)
        #获取表的所有字段名称
        coloumns = [row[0] for row in cur.description]
        result = [[str(item) for item in row] for row in cur.fetchall()]
        return [dict(zip(coloumns, row)) for row in result]
    except Exception as ex:
        print(ex)
    finally:
        conn.close()
#数据库连接信息
database_info={
    "database":"test_base_inf",
    "user":"data_inf_root",
    "password":"BASE_root~589",
    "host":"192.168.12.101",
    "port":"2345"
}
sql="select * from nric_affiliation"
data=get_data(database_info,sql)
for item in data:
    print(item)

  

posted on   滚动的蛋  阅读(454)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示