Python读取写入postgresql数据库
使用pycharm先建立与PG数据库的连接:
使用psycopg2包,我们建立table_word表,字段分别是url,title,time,content,使用url作为主键。
代码如下
## 导入psycopg2包
import psycopg2
## 连接到一个给定的数据库
conn = psycopg2.connect(database="db", user="wjz",password="password", host="101.43.XXX.XXX", port="5432")
## 建立游标,用来执行数据库操作
cursor = conn.cursor()## 执行SQL命令
cursor.execute("""CREATE TABLE if not exists table_word(url varchar(60) PRIMARY KEY NOT NULL,title varchar(30) NOT NULL, time varchar(20) ,content text)""")insert_sql = "INSERT INTO table_word \values('http://blog.sina.com.cn/s/blog_4462623d0102ze34.html','心智与觉醒','2021-12-23 12:23:42','test') \on conflict on constraint table_word_pkey\do nothing;"
cursor.execute(insert_sql)## 提交SQL命令
conn.commit()## 执行SQL SELECT命令
cursor.execute("select * from table_word")## 获取SELECT返回的元组
rows = cursor.fetchall() #获取全部数据
# rows = cursor.fetchmany(size=500) #batch为500条数据进行获取
for row in rows:print(row)## 关闭游标
cursor.close()## 关闭数据库连接
conn.close()
上述逻辑实现后,将insert插入数据包装为函数,使用excutemany批量插入数据,供爬虫数据后写入:
## 导入psycopg2包
import psycopg2def insert_table(data):## 连接到一个给定的数据库conn = psycopg2.connect(database="db", user="wjz",password="password", host="101.43.XXX.XXX", port="5432")## 建立游标,用来执行数据库操作cursor = conn.cursor()## 执行SQL命令cursor.execute("""CREATE TABLE if not exists table_word(url varchar(60) PRIMARY KEY NOT NULL,title varchar(30) NOT NULL, time varchar(20) ,content text)""")#do nothing是在主键冲突时防止SQL报错,若主键冲突则什么也不做insert_sql = "INSERT INTO table_word values(%s,%s,%s,%s) \on conflict on constraint table_word_pkey\do nothing;"cursor.executemany(insert_sql,data)## 提交SQL命令conn.commit()# ## 执行SQL SELECT命令# cursor.execute("select * from table_word")## ## 获取SELECT返回的元组# rows = cursor.fetchall() #获取全部数据# # rows = cursor.fetchmany(size=500) #batch为500条数据进行获取# for row in rows:# print(row)## 关闭游标cursor.close()## 关闭数据库连接conn.close()if __name__ == "__main__":data = [['http://blog.sina.com.cn/s/blog_4462623d0102ze34.html', '心智与觉醒', '2021-12-23 12:23:42', 'test'],['http://blog.sina.com.cn/s/blog_4462623d0102ze34.html', '心智与觉醒', '202sf12-23 12:23:42', 'test'],['http://blog.sina.com.cn/s/blog_4462623d0102zeaa.html', '心智与fs', '2021-12-23 12:23:42', 'test']]insert_table(data)
执行结果,查看数据:
Python读取写入postgresql数据库相关推荐
- python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件
python读取写入文件 In this tutorial we are going to learn about Python File Operations such as python read ...
- php怎么从文件中读取数据库连接,PHP连接 读取 写入mysql数据库的方法 附常用代码...
MYSQL一般都是和PHP配套使用用来建设网站,这里提供PHP连接MySQL数据库以及读取写入数据库的方法,供大家参考使用: 1.为了更好地设置数据连接,一般会将数据连接所涉及的值定义成变量. $my ...
- python读取千万级数据库数据类型_解决python读取几千万行的大表内存问题
Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...
- python读取写入文件_Python读取和写入文件
1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 1234567890 2345678901 3456789012 实现代码: with open('t ...
- python批量写入数据库engine_python 快速写入postgresql数据库方法
一种是导入sqlalchemy包,另一种是导入psycopg2包. 具体用法如下(此处以postgre数据库举例) 第一种: # 导入包 from sqlalchemy import create_e ...
- python读取千万级数据库数据类型_Python 基于Python从mysql表读取千万数据实践
场景: 有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_bar_record表读取1000w条唯一的waybill_no,然后作为INSERT SQL语句的 ...
- python读取网页表格数据库_python 提取网页表格数据库数据库
python开源工具列表[持续更新] 以下是个人在工作中整理的一些python wheel,供参考.这个列表包含与网页抓取和数据处理的Python库 网络 通用urllib -网络库(stdlib). ...
- python读取写入文件_Python文件读写保存操作
记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...
- Python读取/写入EXCEL及样式
xlrd和xlwt是python操作excel的两个库,xlrd用于读取,xlwt用于写入.xlwt无法直接操作xlrd读取的excel数据,需要使用xlutils3将xlrd读取的excel拷贝成x ...
最新文章
- 解决CSV文件中长数字以科学记数格式保存问题
- 树莓派安装docker
- python输入字符串转换为公式_python从字符串转换为boolean ?
- golang中的爬虫
- dev chartcontrol获取x y轴的值_终于,奔驰强势接手了腾势X
- CRM呼叫中心里的Java stack
- nginx+php+mysql+haproxy+keepalived+NFS,搭建wordpress
- java 文件存储_文件存储学生信息(JavaIO流)
- Python——格式转换的学习笔记
- WebAppBuilder自定义主题
- Windows应用程序组成及编程步骤
- WSS2.0 服务器启用SQL代理的解决过程
- jmeter访问网址
- PDF软件有这么好用的打印机,你知道吗?
- php腾讯云短信接口调用
- python调用pyd_使用python pyd时出错
- 【最终幻想15 国王之剑】制作介绍2:最大限度满足角色,背景和道具的要求
- 九、奈氏准则和香农定理
- 移动H5 iPhone audio没有声音(声音不同步)问题的解决方式
- 高通全新WiFi方案支持Ayla物联网平台连接