pandas数据保存至Mysql数据库 

import pandas as pd
from sqlalchemy import create_engine
host = '127.0.0.1'
port = 3306
db = 'test'
user = 'root'
password = '********'
engine = create_engine(str(r'mysql mysqldb://%s:' '%s' '@%s/%s') % (user, password,
host, db))
try:
df = pd.DataFrame([[1,'x'],[2,'y']],columns=list('ab'))
df.to_sql('test1',con=engine,if_exists='replace',index=False)
except Exception as e:
print(e)

to_sql参数

参数:
name : string

SQL表的名称。

con : sqlalchemy.engine.Engine或sqlite3.Connection

使用SQLAlchemy可以使用该库支持的任何数据库。为sqlite3.Connection对象提供了旧版支持。

schema : string,optional

指定模式(如果数据库flavor支持此模式)。如果为None,请使用默认架构。

if_exists : {'fail','replace','append'},默认'fail'

如果表已存在,如何表现。

  • 失败:引发ValueError。
  • replace:在插入新值之前删除表。
  • append:将新值插入现有表。
index : bool,默认为True

将DataFrame索引写为列。使用index_label作为表中的列名。

index_label : 字符串或序列,默认为None

索引列的列标签。如果给出None(默认值)且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个序列。

chunksize : int,可选

行将一次批量写入此大小。默认情况下,所有行都将立即写入。

dtype : dict,可选

指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型或sqlite3传统模式的字符串。

方法 : {无,'多',可调用},默认无

控制使用的SQL插入子句:

  • 无:使用标准SQL INSERT子句(每行一个)。
  • 'multi':在单个INSERT子句中传递多个值。
  • 可以签名。(pd_table, conn, keys, data_iter)

可以在插入方法部分中找到详细信息和示例可调用实现。

版本0.24.0中的新功能。

举:
ValueError异常

当表已经存在且if_exists为'fail'时(默认值)。

参考链接:http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html

应用场景

1建立tcp一次长连接,发送数据端:每隔5s发送一次json数据,接受数据端:接收数据,进行数据处理,存储数据

server

import socket
import pandas as pd
from sqlalchemy import create_engine sk = socket.socket() sk.bind(('127.0.0.1',8000)) sk.listen(2) con,addr = sk.accept()
# print(addr,con)
engine = create_engine('mysql+pymysql://root:@127.0.0.1:3306/db1')
while True:
msg = con.recv(8048).decode() df = pd.read_json(msg,dtype={'code':'str'})
# 删除parentId列
df.drop(['parentId'],axis=1,inplace=True)
# 修改id为cid
df1 = df.rename(columns={'id':'cid'})
# print(df1)
try:
# df = pd.DataFrame([[1,'x'],[2,'y']],columns=list('ab'))
df1.to_sql('test1',con=engine,if_exists='append',index=False)
except Exception as e:
print(e)

client

import socket
import time
import re
import requests
import json
import pandas as pd sk = socket.socket()
sk.connect(('127.0.0.1',8000))
url = 'https://www.lagou.com/lbs/getAllCitySearchLabels.json'
heards = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3452.0 Safari/537.36'
}
cont = requests.get(url=url, headers=heards).text
while True:
cont1 = re.findall('\[.+?\]', cont)
for i in cont1:
sk.send(i.encode('utf8'))
time.sleep(5)

pandas数据保存至Mysql数据库的更多相关文章

  1. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  2. 猫眼电影爬取(一):requests+正则,并将数据存储到mysql数据库

    前面讲了如何通过pymysql操作数据库,这次写一个爬虫来提取信息,并将数据存储到mysql数据库 1.爬取目标 爬取猫眼电影TOP100榜单 要提取的信息包括:电影排名.电影名称.上映时间.分数 2 ...

  3. 如何将MongoDB数据库的数据迁移到MySQL数据库中

    FAQ v2.0终于上线了,断断续续忙了有2个多月.这个项目是我实践的第一个全栈的项目,从需求(后期有产品经理介入)到架构,再到设计(有征询设计师的意见).构建(前端.后台.数据库.服务器部署),也是 ...

  4. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  5. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?如何获取当前数据库版本?

    一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几? 一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysq ...

  6. Python scrapy爬虫数据保存到MySQL数据库

    除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 ...

  7. python之scrapy爬取数据保存到mysql数据库

    1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...

  8. 将白码平台数据存储到MySQL数据库

    概述: 此前在白码平台上搭建并使用系统,若想要将白码平台上搭建的系统的数据存储到自己本地的MySQL数据库中的话,需要将数据导出后再对数据进行处理.如今想要实现这一需求,直接通过使用白码的数据库对接功 ...

  9. 利用Load命令将本地文本里面的数据导入到MySQL数据库

    摘要:在使用MySQL是我们可能会遇到要向我们的表中插入大量的数据如果都使用以下的语句在命令行输入有点不太切实际,幸好MySQL为我们提供了LOAD命令可以批量的从本地文件向MySQL表中导入数据! ...

随机推荐

  1. Debian 下忘记root密码的特殊修改方式

    当系统开机进入 grub页面时,在启动条目上按下键盘的 e 进入编辑 找到 linux 开头的一行,类似下面这样 linux /boot/vmlinux-4.9.0.8-amd64 root=/dev ...

  2. 5_PHP数组_3_数组处理函数及其应用_7_数组排列函数

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组排列函数 1. sort() 函数 程序: <?php $array = array("img ...

  3. Sqlite in flutter, how database assets work

    First off, you will need to construct a sqlite database from your csv. This can be done in the follo ...

  4. jmeter中assertion的使用

    用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 最新版本的3.0jmeter中有13种不同的断言: 1)BeanShell断言:针对sampler中的Bean ...

  5. Ruby开发小记

    基础点 1.log打印 puts "Hello!" 2.拼接字符 value1 = "today" value2 = "#{value1} is Th ...

  6. 1+X证书学习日志——定位

    ## 静态定位:                 position:static;    默认值,指定left/right/top/bottom/  没有作用.                 pos ...

  7. Jmeter学习笔记(十一)——定时器

    默认情况下,Jmeter线程在发送请求之间没有间歇.不设置定时器,短时间内会产生大量访问请求,导致服务器被请求淹没,利用Jmeter进行压测时,一般会和定时器一起,控制请求的吞吐量和并发数. 一.定时 ...

  8. linux识别ntfs U盘

    NTFS-3G 是一个开源的软件,可以实现 Linux.Free BSD.Mac OSX.NetBSD 和 Haiku 等操作系统中的 NTFS 读写支持 下载最新ntfs-3g源代码,编译安装 # ...

  9. Centos部属前后端项目

    一.安装python3 # 下载并解压 cd /opt wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz tar -zxf P ...

  10. Ubuntu 18.04 使用apt-get 华为源支持 arm64 鲲鹏处理器

    网上搜的源,什么阿里云163等等的,都不支持arm64 执行以下代码,使用华为源 wget -O /etc/apt/sources.list https://repo.huaweicloud.com/ ...