精华内容
下载资源
问答
  • Python将数据写入MySQL

    万次阅读 2018-12-18 18:48:24
    import MySQLdb ...# connect MySQL conn = MySQLdb.connect( host= , user= , passwd= , db= , port= , charset='utf8') cursor = conn.cursor() filter_merge_len = len(filter_merge_da...
    import MySQLdb
    
    
    # connect MySQL
    conn = MySQLdb.connect(
        host= ,
        user= ,
        passwd= ,
        db= ,
        port= ,
        charset='utf8')
    cursor = conn.cursor()
    
    
    filter_merge_len = len(filter_merge_data)
    for x in range(filter_merge_len):
        try:
            cursor.execute(
                "insert into database_name.table_name(date,monitor_item, host_ip, cluster\
               , software, alarm_hit) values('%s','%s','%s','%s','%s','%d')" %
                (yest_date, filter_merge_data.iloc[:, 0][x],
                 filter_merge_data.iloc[:, 1][x],
                 filter_merge_data.iloc[:, 2][x],
                 filter_merge_data.iloc[:, 3][x],
                 filter_merge_data.iloc[:, 4][x]))
            # 提交到数据库执行
            conn.commit()
        except Exception as e:
            print 'Insert Failed'
    
    
    # close
    conn.commit()
    cursor.close()
    conn.close()
    
    展开全文
  • 自己做项目的时候一些学习笔记,MySQL学习笔记+python接收传感器+python将数据写入MySQL+PHP连接本地MySQL
  • 基于ubuntu系统,首先需要安装mysql数据库,主要过程如下:sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev安装过程中需要设置数据库密码。安装成功...

    基于ubuntu系统,首先需要安装mysql数据库,主要过程如下:

    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev

    安装过程中需要设置数据库密码。

    安装成功后,登入数据库:

    mysql -uroot -p123456      (-u后面是用户名,-p后面是安装时设置的数据库密码)

    成功登入数据库后可使用show databases;查看存在的数据库;

    使用create database wifi; 建立一个名为wifi的新的数据库;

    使用use wifi;进入该数据库;

    这是使用show tables; 可以查看wifi数据库中的数据表;

    可以使用create table wifidb(……);建立数据表,如下图所示:


    使用python写数据库需要安装pymysql:

    pip install pymysql

    具体写入数据到数据库程序如下:

    import pymysql
    
    conn = pymysql.connect(db='wifi',host='localhost',user='root',passwd='123456') #参数依次为数据库名称,服务器IP地址,此处为本地,用户名,密码
    
    c = conn.cursor() #创建一个游标对象
    
    c.execute('insert into wifidb(BSSID,Strength,Location_id) values (%s,%s,%s)',(bssid[j],strength[j],i)) #写入数据到wifidb数据表
    
    conn.commit() #提交
    
    c.close() #关闭
    
    conn.close()
    

    wifi建立指纹数据库通常需要对一点重复采集的数据进行平均处理,这时使用数据库命令就比较方便了:

    insert into wifidb0(BSSID,Strength,Location_id) select BSSID,AVG(Strength),i from wifidb group by BSSID
    #将数据表中的wifi相同ap的信号强度作平均写入到数据表wifidb0中
    


    展开全文
  • 版权声明:本文为博主原创文章,未经博主...2.用Python将数据写入到阿里云的RDS-MySQL数据库内? 3.如何将爬取的数据写入到数据库? 4.如何将爬起的代理IP写入到阿里云RDS或者本地Mysql数据库内? 实际上这几个...

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42555401

    需要解决的问题:

    1.用Python把数据写入到MySQL数据库?

    2.用Python将数据写入到阿里云的RDS-MySQL数据库内?

    3.如何将爬取的数据写入到数据库?

    4.如何将爬起的代理IP写入到阿里云RDS或者本地Mysql数据库内?

    实际上这几个问题可以通过一个案例解决:

     

    案例介绍:将爬取www.xicidaili.com的网站的数据,写入到阿里云的MySQL数据库。

    效果图如下:

    这是对应的代码:

    #evan 军辉 代码!请多指教!
    
    import urllib.request
    from lxml import etree
    import pymysql
    from datetime import datetime
    import time
    '''http提取的写入'''
    #模拟浏览器
    headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36')
    opener =urllib.request.build_opener()
    opener.addheaders = [headers]
    
    #连接数据库
    conn= pymysql.connect(host='rm-bp1w1p1b35c3g17caeo.mysql.rds.aliyuncs.com', user='登录账户',password='你的密码', db ='spider',port=3306, charset='utf8')
    print('连接数据库成功!')
    cursor = conn.cursor()
    
    for page in range(1,5):
    
        Iplist = []
        postlist = []
        http = '://'
        maohao = ':'
        IPtest_address = []
    
        url_all = 'https://www.xicidaili.com/wn/{}'.format(page)               #需要抓取IP的网址
        data = opener.open(url_all).read()
        html = etree.HTML(data)
        IPaddress = html.xpath('//tr[@class=\'odd\']/td[2]/text()')            #IP地址
        postcode = html.xpath('//tr[@class=\'odd\']/td[3]/text()')             #端口
        agent_name1 ='www.xicidaili.com'
        https_or_http = html.xpath('//tr[@class=\'odd\']/td[6]/text()')                 #是HTTP_还是HTTPS
        crawl_time1 = datetime.now().strftime('%Y-%m-%d')                                #爬取的系统时间
        time.sleep(5)
        for i in range(len(IPaddress)):
            lower_https_or_http =https_or_http[i].lower()                                           #将HTTP或者HTTPS 改为小写
            Final_IP = lower_https_or_http + http + IPaddress[i] + maohao + postcode[i]
            print(Final_IP)
            IPtest_address.append(Final_IP)
    
        for i in range(len(IPaddress)):
            sql = '''insert into ipaddress (IPaddress,post,agent_name,IPtest_address,https_or_http,crawl_time) values ('%s','%s','%s','%s','%s','%s')''' % (IPaddress[i], postcode[i], agent_name1, IPtest_address[i],https_or_http[i],crawl_time1)
            print('插入'+ str(i+1)+ '行')                                                                                                   # ''' ''' 一定要使用,不然会出现解析失败
            try:
                cursor.execute(sql)
                conn.commit()
            except:
                cursor.rollback()
                print('写入失败')
    
    cursor.close()
    conn.close()
    
    time.sleep(10)  

    案例解释:

    大致的步骤分为:

    • 连接数据库;
    • 创建表
    • 将数据写入数据库;
    • 关闭数据库。

    注意:这边如果你需要先装好pymysql。

     

    1.连接数据库:

    #连接数据库
    conn= pymysql.connect(host='rm-bp1w1p1b35c3g17caeo.mysql.rds.aliyuncs.com', user='登录账户',password='你的密码', db ='spider',port=3306, charset='utf8')
    print('连接数据库成功!')
    cursor = conn.cursor()

     

    在连接自己的数据库之前我们应先导入import MySQLdb模块

    • host:对于本地数据库:自己的主机号,一般写127.0.0.1就可以了。
    • port:端口号
    • user:root
    • passwd:密码
    • db:连接的数据库名称
    • charset:编码

    这里我连接的是阿里云的数据库。方法和连接本地的数据库基本一样,就一个差别,就是host.

    这里的host可以在阿里云的登录界面上取到。

    下面的文章内有介绍如何找到指定的阿里云的host,账户和密码。

    数据库 使用PYCHARM连接到阿里云的RDS-MYSQL

    对于charset,他是数据库的编码形式,在登录数据库后台,右击需要查看的数据库表,点击对象信息

    这个utf8 就是数据库的charset。这里要注意,很多时候我们会无意的写成 utf-8。那么,连接就会报错。

    本地的MySQL数据库也是类似的方式,找到charset。

    cursor用来接收返回值的方法:

     这里很多同学可能不好理解,所以我用了一个简单的比喻来解释一下:

    这里我把图上的仓库比作MySQL的数据仓库,coon就是我们刚才打开的卸货闸门,那么我们需要把货物运来,就需要卡车(cursor).希望能力理解,有说的不明白的,请指出谢谢。

     

    2.创建表

    建表很简单,大家肯定都会这里就不多唠叨了。下面是代码:

    #evan 军辉
    
    
    CREATE TABLE `effective_ipaddress` (
      `IPaddress` varchar(255) DEFAULT NULL COMMENT '代理IP的地址',
      `post` varchar(255) DEFAULT NULL COMMENT '端口',
      `agent_name` varchar(255) DEFAULT NULL COMMENT 'IP来源网站',
      `crawl_time` varchar(50) DEFAULT NULL COMMENT '爬取IP地址的系统时间',
      `IPtest_address` varchar(255) DEFAULT NULL,
      `https_or_http` varchar(50) DEFAULT NULL,
      `mechar_address` varchar(32) DEFAULT NULL COMMENT '服务器地址',
      `test_time` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    3.将数据写入数据库

       #evan 军辉代码
    
     for i in range(len(IPaddress)):
            sql = '''insert into ipaddress (IPaddress,post,agent_name,IPtest_address,https_or_http,crawl_time) values ('%s','%s','%s','%s','%s','%s')''' % (IPaddress[i], postcode[i], agent_name1, IPtest_address[i],https_or_http[i],crawl_time1)
            print('插入'+ str(i+1)+ '行')                                                                                                   # ''' ''' 一定要使用,不然会出现解析失败
            try:
                cursor.execute(sql)
                conn.commit()
            except:
                cursor.rollback()
                print('写入失败')

    这里我抓取了网页的相关信息,放在列表内。那么,现在需要同过FOR循环的方式,把数据写入到库表内。

    cursor (卡车),要开始卸货到仓库。 现在我们需要写个sql 语句将数据写入到数据库内。

    箱子就是for 循环内的数据(纸箱)。但是我们需要sql(叉车)来帮忙运输。

     

    cursor.execute(sql): cursor(卡车)叫来了sql(叉车)来卸货,同时叫conn.commit()(仓库门要打开).

    这里的sql 语句可以有好多个形式。需要注意:

    1.一般样式:sql='''insert into 表名 values(%s,%s,%s,%s,%s)'''%(值1,值2,值3,值4,值5)

    2.使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s

    3.  要用三个引号,怎样就不用使用‘换行符/n’。

    这里不是每次写入数据都会成功,我们使用了try...exept...函数。如果出现错误的话,运行cursor.rollback():撤回数据(卡车回去,把货物卸掉。)

    关闭数据库

    执行完后记得要把cursor关闭(卡车熄火),并且conn.close()   (把库门关上)。

    展开全文
  • # 读取txt文件内容默认是str类型,此处其分割成一个个元素形成列表 cursor . execute ( sql , ( text_line_list [ 0 ] , text_line_list [ 1 ] , int ( text_line_list [ 2 ] ) , text_line_list [ 3 ] , text...
    #---zhangpengxu---
    #-*- coding: utf-8 -*-
    
    import datetime
    import time
    import pymysql.cursors
    import decimal
    # 创建一个游标
    conn = pymysql.connect(
        host='localhost',
        port=3306,
        user='root',
        passwd='xu19931026',
        db='cd_taxi',
        charset='utf8'
    )
    
    start_time=datetime.datetime.now()
    
    if conn:
        print("连接成功!")
    cursor = conn.cursor()  # 获取游标
    sql = "INSERT INTO Order_Data (OrderId,BeginTime,EndTime,BeginLongitude,BeginLatitude,EndLongitude,EndLatitude) VALUES (%s,%s,%s,%s,%s,%s,%s);"  # sql语句
    bl=0 #读取了多少行
    with open('order_20161101', 'r') as file:
        try:
            while True:
                text_line = file.readline()
                if(text_line!=''):
                    bl += 1 #加一行
                    text_line_list = text_line.split(",") # 读取txt文件内容默认是str类型,此处将其分割成一个个元素形成列表
                    cursor.execute(sql, (text_line_list[0],text_line_list[1],int(text_line_list[2]),text_line_list[3],text_line_list[4],text_line_list[5],text_line_list[6].strip("\n"))) # 传值
                    conn.commit()  # 提交事务
                    if bl%50000==0: #5万行休息1s
                        time.sleep(1)
                        print('已完成插入SQLsever'+str(bl)+'行数据'+'正在插入'+str(bl)+'至'+str(bl+50000)+'行数据')
    
        finally:
            print("读取完毕")
            file.close()
    end_time = datetime.datetime.now()
    speed = end_time - start_time
    print('一共用时:'+str(speed))
    
    # -------------------------------------------------------
    
    
    展开全文
  • Python读取excel数据写入mysql
  • python 中文写入mysql

    2020-03-18 14:40:14
    设置mysql中的charset是UTF-8的,然后在...pythonmysql获取数据时,会将数据转成unicode码 # -*- coding: utf-8 -*- import sys import MySQLdb import json reload(sys) sys.setdefaultencoding("utf-8") db=...
  • python数据写入MySQL

    千次阅读 2019-10-10 17:32:34
    python数据写入MySQL背景完整代码 背景 手里头有一份上海市2016年9月1日公共交通卡刷卡数据 想做一下上海市通勤数据挖掘,由于源文件有800多兆,用python读取起来很慢很卡,于是想导入数据库MySQL里面处理,...
  • 今天小编就为大家分享一篇Python爬取数据写入MySQL数据库的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • # python写入数据mysql数据缺失 使用以下代码循环写入数据mysql 数据总是丢失非常多,到底是怎么回事? ``` import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", ...
  • python3excel文件数据写入mysql5.7 环境:python版本---3.6.5;mysql版本---5.7 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import pymysql #支持Python3.0 ##读取excel使用(支持03) import xlrd from ...
  • 先在mysql创建好数据库以及数据表 以下为自己参考多个网站写的代码 # -*- coding: UTF-8 -*- import xlrd,pymysql,sys reload(sys) sys.setdefaultencoding('utf-8') def open_excel(file): try: data =...
  • 主要介绍了Python实现将数据框数据写入mongodb及mysql数据库的方法,结合具体实例形式分析了Python针对mongodb及mysql数据库的连接、写入等操作实现技巧,需要的朋友可以参考下
  • python tushare直接写入mysql数据库

    千次阅读 2020-06-30 17:24:45
    前言:前面的几篇文章都是记录tushare先写入本地硬盘变成csv格式,然后再从csv取数据进行分析再导入mysql。以下代码是直接tushare获取到数据直接导入mysql,先大体放出简单代码,后面再记录完善的代码: import ...
  • pythonMySQL写入数据和添加数据

    千次阅读 多人点赞 2020-01-13 17:02:21
    在笔者之前的博文中,已介绍了用python连接与mysql数据库的知识。包括如何安装python连接mysql的pymysql包,如何通过cusor语句将python与mysql连接起来,以及如何用...一、用python将数据写入mysql 例子:现有一个e...
  • 现有一个用户表,需要数据写入到excel中。 环境说明 mysql版本:5.7 端口:3306 数据库:test 表名:users 表结构如下: CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` ...
  • python数据写入mysql数据库中

    千次阅读 2020-11-30 10:10:24
    第一步需要连接数据库 # 连接数据库 ...第二步把数据添加到数据库中,在这之前还需要获取光标 conn = db.cursor() # 获取光标 conn.execute('insert into concept_plate(plate_name,latest_price,c
  • \t, \n, ’ 等特殊字符写入mysql数据库而不其转义 解决方案 导入 pymysql 包 将要写入mysql 的字符串先用pymysql.escape_string()处理,再写入 如: sql = """INSERT INTO task (id, text) VALUES (%s, '%s')""...
  • Python爬取数据写入MySQL数据库

    万次阅读 多人点赞 2017-04-20 14:15:58
    首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据。按 F12 或 ctrl+u 审查元素,结果如下:  结构很清晰简单,我们就是要爬 tr .../usr/bin/env python # coding=utf-8import requests from bs4
  • #python3.6.2 import pandas as pd import pymysql from sqlalchemy import create_engine engine = create_engine("mysql+pymysql://user:password@host:port/databasename?charset=utf8") # 这里一定要写成mysql...
  • PythonMySQL写入数据

    千次阅读 2019-08-17 14:31:36
    这是因为Python写入数据MySQL的语句为字符串,这样把生成的命令直接传递给MySQL就可以了。(下面代码运行的前提条件是数据库中已经存在对应的数据表!!!) import pymysql import logging import pandas as .....
  • python读取和写入mysql

    千次阅读 2020-01-16 11:25:51
    导入依赖包 import pymysql import pandas as pd import numpy as np from sqlalchemy import create_engine from sqlalchemy.types import NVARCHAR,...如果是要读取,有两种方式连接mysql 方法一 def sql_connect(...
  • 2、数据数据写入mysql方法 为了以后不重复造轮子,这里总结下,如何把数据数据写入mysql和mongodb的方法记录下来,省得翻来翻去。下面记录的都是精华。写入mongodb代码片段(使用pymongo库):#################...
  • ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理 yconnect = create_engine('mysql+mysqldb://root:password@local...
  • python爬取全国疫情数据 1、实现效果 2、实现代码 import pymysql import requests import re import json from time import sleep def A(): try: url = ...
  • 第三题: 0001 题生成的 200 个...由于是要把数据保存到mysql中,这里就需要用到Python的怕pymysql模块,并且先生成再存入, 注意: 1.这里操作MySQL的时候,先写入一条,获得id,然后再更新该条记录。 2.创建的验...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,725
精华内容 19,090
关键字:

python将数据写入mysql

python 订阅
mysql 订阅