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) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了