在笔者之前的博文中,已介绍了用python连接与mysql数据库的知识。包括如何安装python连接mysql的pymysql包,如何通过cusor语句将python与mysql连接起来,以及如何用python查询数据库等等。 传送门:用python连接与查询mysql数据库

今天,再来说说如何用python写入数据和添加数据到mysql。

一、用python将数据写入mysql

例子:现有一个格式为dataframe的数据集data,内含“编号”“商品名称”“售价”这三个变量名,共3条数据,如图所示:  输入下列代码即可写入mysql中,该数据集成为名为price的表,被放在aaa库中。这段代码的思想是创建一个引擎(engine),内含MySQL的主机名、端口、用户名、密码和库名等信息。它相当于一把钥匙,有了这些信息就能顺利找到MySQL中的指定库。然后通过to_sql将数据集直接写入MySQL指定库中。 格式如下: 1、engine= create_engine(“mysql+pymysql:/用户名:密码@主机名:端口/待写入的数据库名字?设置文本防乱码格式”) 2、dataframe.to_sql(name=“设置的表名”,con=engine,if_exists=‘replace’,index=False,index_label=False)

from sqlalchemy import create_engine

engine = create_engine("mysql+pymysql://root:123@localhost:3306/aaa?charset=utf8mb4")

data.to_sql(name="price",con=engine,if_exists='replace',index=False,index_label=False)

现在验证数据是否已成功写入MySQL中,查询结果如下:  如图所示,数据已成功写入aaa库中。

二、用python添加数据到mysql

2.1 手动插入少量数据

与用python查询数据库一样,依然是通过游标(cusor)来实现添加数据。cursor.executemany可以添加1条或多条数据。 需要注意的是,"insert into aaa values(%s,%s,%s)"中不管数据是什么类型,统一使用%s作为占位符。 在写入sql的关于水果售价的表中继续添加几行数据:

#手动插入少量数据

import pymysql.cursors

connection=pymysql.connect(host='localhost',port=3306,user='root',password='123',db='huanghe',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)

#通过cursor创建游标

cursor = connection.cursor()

#插入数据

cursor.executemany(

"insert into aaa values(%s,%s,%s)",

[

(4,'orange',8),

(5,'lemon',5),

(6,'strawberry',15)

]

)

connection.commit()

添加数据后的mysql表如下:

2.2 批量插入大量数据

上一种插入方法需要一个个手动输入数据,遇到大一点的数据量会马上扑街…这里提出一种批量插入大量数据的方法,但要在python中需要将这些数据存为dataframe格式,然后再添加到mysql表中。 继续在关于水果售价的表中添加更多的数据: 1、在python中将新的数据data1存为dataframe:   2、只要一行代码就能添加至mysql:

data1.to_sql(name="price",con=engine,if_exists='append',index=False,index_label=False)

to_sql既可以写入数据,也可以添加数据,参数“if_exists”=‘append’时可直接在原表的后面添加数据。

to_sql其他的参数说明: name: 输出的表名 con: 与read_sql中相同,数据库链接 if_exits: 三种模式:fail,若表存在,则不输出;replace:若表存在,覆盖原来表里的数据;append:若表存在,将数据写到原表的后面。默认为fail。 index:是否将df的index单独写到一列中 index_label:指定列作为df的index输出,此时index为True

总结

to_sql是用python操作mysql的重要函数,批量导入增加数据比较方便。如果数据的格式比较常见,批量插入数据就用dataframe.to_sql()吧。而executemany适合手动插入少量数据,以及数据量较大的数据集格式不方便转为dataframe格式时,通过写循环插入数据。

python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据相关推荐

  1. 数据标签处理:python将xml文件转换为txt,csv格式

    数据标签处理:python将xml文件转换为txt,csv格式 这里的标注文件为点标注文件 每次要用数据处理脚本的时候都忘记放哪里了,然后重写了一遍又一遍,虽然代码不长,但是每次都有重新写还是很麻烦, ...

  2. seaborn添加数据标签_常见Seaborn图的数据标签快速指南

    seaborn添加数据标签 In the course of my data exploration adventures, I find myself looking at such plots ( ...

  3. python中字典添加键对_关于python:如何向字典添加键、值对?

    本问题已经有最佳答案,请猛点这里访问. 如何在字典中添加键.值对?.下面我提到了以下格式? {'1_somemessage': [[3L, 1L, u'AAA', 1689544L, datetime ...

  4. python多维数据存储_在Python中存储和重新加载大型多维数据集

    我将运行大量的模拟,产生大量的数据,这些数据需要在以后存储和访问.我的模拟程序的输出数据被写入文本文件(每个模拟一个).我计划编写一个Python程序来读取这些文本文件,然后以更便于以后分析的格式存储 ...

  5. python处理表格数据教程_用Python的pandas框架操作Excel文件中的数据教程

    引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要.作为额外的福利,我将会进行一些 ...

  6. IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

    文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...

  7. springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法

    向MySQL插入数据有时会遇到主键重复的场景,原来的做法是先在程序代码中SELECT一下,判断是否存在指定主键或唯一键的数据,如果没有则插入,有的话则执行UPDATE操作,或另外一套逻辑,这种方法是不 ...

  8. mysql 将xml插入数据库_从xml文档中读取数据并插入mysql数据库中

    // TODO: Add your control notification handler code here CMarkup xml; xml.Load("色谱案例表.xml" ...

  9. python中怎么把值添加进列表_在Python中为子列表添加值

    有时我们需要为现有列表引入附加值.在本文中,我们将看到如何通过与现有列表的每个项目组合将一个或多个新值插入到现有列表中. 使用For循环 如果我们获取的列表具有相同长度的项目,则可以使用此方法在列表的 ...

最新文章

  1. C++ I/O语法及其用法
  2. 两路虚拟化服务器,当四核多路服务器碰上虚拟化
  3. 同一台机器上安装2个SDE服务
  4. 阿里云李克:边缘云技术发展与实践
  5. 【python教程入门学习】Python 正则表达式
  6. STL模板整理 priority_queue
  7. asp oracle数据库开发 adodb,asp怎么连接oracle数据库
  8. 人工智能在电力系统中的应用前景怎么样
  9. 计算机机房系统建设,计算机机房系统建设方案(范文).pdf
  10. 该内存不能read written常见原因
  11. python计算工资工时_Python实现扣除个人税后的工资计算器示例
  12. 【SPEA飞针测试】4085飞针测试机简述
  13. oracle忘记解锁scott和hr用户问题
  14. 一图了解交通拥堵治理措施
  15. 1.1关于机器学习和深度学习
  16. Bubba 迷你效劳器
  17. USB协议详解第6讲(USB描述符-端点描述符)
  18. 5 linux基础命令
  19. 成都拓嘉启远:拼多多直通车常见问题分享
  20. 机器学习 Fbeta-Measure 指标详解

热门文章

  1. linux libffi 简介 高级语言互调库
  2. RSA 密钥 明文 密文 长度介绍
  3. 如何创建自己的docker image并上传到DockerHub上
  4. Sublime Text 3 python 配置
  5. Nginx之location 匹配规则详解
  6. SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600
  7. 点在平面上的投影坐标例题_光测力学-栅线投影(面结构光)技术
  8. 储存卡怎么格式化为fat32_电脑复制文件到U盘提示文件容量太大该怎么办?
  9. 计算机网络基础实验简答题,计算机网络基础实验报告.doc
  10. weblogic oracle连接池配置文件,weblogic连接池的配置