参考:

https://www.jb51.net/article/49789.htm

https://blog.csdn.net/littlely_ll/article/details/82706874

 import pandas as pd
import sqlalchemy df = pd.DataFrame()
print(df)

结果:

 Empty DataFrame
Columns: []
Index: []

插入1条数据

import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
# engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #插入单条数据:
new_user = User(name='lily')
#添加数据,但还没有提交,出错还可以使用rollback撤回操作
session.add(new_user)
#提交到数据,这一步才是真正的将数据插入到数据库中了
session.commit()

结果

利用pandas批量插入数据

方式一:使用pandas_obj.to_sql()

 import pandas as pd
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) df = pd.DataFrame({"name":["Jon","Mary","Tom"]})
df.to_sql("user",con=engine,if_exists="append",index=False)

在使用to_sql时注意if_exists参数,如果是replace的话它会先drop掉表,然后再创建表,最后插入数据

结果:

第2种方法,使用for循环

 import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #原生方法,批量插入
a=[]
for i in range(3):
a.append({"name":"曹操%s"%i}) print(a)
session.execute(User.__table__.insert(),a)
session.commit()

打印的a的结果:

[{'name': '曹操0'}, {'name': '曹操1'}, {'name': '曹操2'}]

查询表的结果,已经插入成功了:

最新文章

  1. html/css基础篇——iframe和frame的区别【转】
  2. ionic教程之Win10环境下ionic+angular实现滑动菜单及列表
  3. JQuery阻止事件冒泡---阻止后续代码执行
  4. grails2.3.11第二课
  5. Struts2 Tomcat的配置
  6. [转载]VIM命令合集
  7. 在收购Sun六年后,Oracle终于瞄准了Java的非付费用户
  8. GridView”的控件 必须放在具有 runat=server 的窗体标记内 “错误提示”
  9. spring整合struts2,hibernate
  10. Oracle查询数据出来乱码问题?
  11. 页面json 格式化+颜色高亮
  12. 在浏览器地址栏输入URL,按下回车后究竟发生了什么?
  13. 从后台servlet中,获取jsp页面输入的值,来删除用户一行信息
  14. Chart控件,鼠标选择区域,可以局部放大缩小
  15. 性能测试LR学习笔录 -2
  16. 20165315 2018-2019-2 《网络对抗技术》Exp1 PC平台逆向破解
  17. 遗传算法selection总结-[Fitness, Tournament, Rank Selection]
  18. 基于Kubernetes集群部署skyDNS服务
  19. golang协程池设计
  20. HTTP协议(一)[草稿版]

热门文章

  1. Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate
  2. apple IOS的base64编解码
  3. 第十七周 Leetcode 403. Frog Jump(HARD) 线性dp
  4. zoj 3861(dfs)
  5. jsp中page指令用法详解
  6. XDCTF2015代码审计全解
  7. bzoj 4568: [Scoi2016]幸运数字【树链剖分+线段树+线性基】
  8. bzoj 3512: DZY Loves Math IV【欧拉函数+莫比乌斯函数+杜教筛】
  9. Rabbitmq笔记二
  10. vultr 购买vps