精华内容
下载资源
问答
  • 1. execute 中字段的值是字符串形式时必须加引号,但是executemany只需要使用占位符%s,pymysql利用给的参数list自动会加上引号 2.execute返回结果都是数字,但是executemany返回结果为none和数字 3.executemany之后...
  • 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-------+-----+ | id | name | pwd | +----+-------+-----+ | 1 | mike | 123 | | 2 | ...

     

     

    调用游标下的lastrowid 

    可以获取插入之前的表里id字段存放到哪个自增id

    cursor.lastrowid


    mysql> select * from userinfo;
    +----+-------+-----+
    | id | name  | pwd |
    +----+-------+-----+
    |  1 | mike  | 123 |
    |  2 | jack  | 456 |
    |  3 | alex  | 555 |
    |  4 | peter | 989 |
    |  5 | app   | 123 |
    |  6 | tom   | 556 |
    +----+-------+-----+
    6 rows in set (0.03 sec)
    
    

    我再用脚本 插入三条记录 自增id就是从 7开始,获取我插入记录的 第一条记录的自增id,

    下面我插入三条记录,自增id分别是7、8、9

     

    import pymysql
    
    
    
    mysql_host = '192.168.0.106'
    port = 3306
    mysql_user = 'root'
    mysql_pwd = '123'
    encoding = 'utf8'
    
    # 建立 连接mysql服务端
    
    conn = pymysql.connect(
        host=mysql_host,  # mysql服务端ip
        port=port,  # mysql端口
        user=mysql_user,  # mysql 账号
        password=mysql_pwd,  # mysql服务端密码
        db='db10',  # 操作的库
        charset=encoding  # 读取字符串编码
    
    )
    
    # 拿到游标对象
    cur = conn.cursor()
    
    '''
    游标是给mysql提交命令的接口
    mysql> 
    把sql语句传递到这里
    '''
    
    
    # 执行sql语句
    # 增、删、改
    sql= 'insert into userinfo(name,pwd) values(%s, %s); '
    
    
    # 把sql语句传给游标执行
    # 让游标execute去帮我拼接字符串
    rows = cur.executemany(sql,[('peter4','989'),('app5','123'),('tom6','5566')])
    print(cur.lastrowid)
    # 想让insert 语句 插入数据库里面去需要加上这个
    conn.commit()
    
    # 执行完sql语句要关闭游标和mysql连接
    cur.close()
    conn.close()
    
    # 7

     

     

    转载于:https://www.cnblogs.com/mingerlcm/p/9937504.html

    展开全文
  • 工具: pycharm 2018.3.5 Anaconda3-2018.12 + Python 3.7.1 前期准备: 目标网站页面——携程>酒店>上海酒店 找到页面URL 1、此次使用到的全部库 import requests ...import pymysql import t...

    工具:

    pycharm 2018.3.5

    Anaconda3-2018.12 + Python 3.7.1

    前期准备:

    目标网站页面——携程>酒店>上海酒店

    找到页面URL

    1、此次使用到的全部库

    import requests
    import json
    import re
    import csv
    import demjson
    import pymysql
    import time

    2、MySQL数据库的连接

    conn = pymysql.Connect(host='localhost', port=3306, user=' ', passwd=' ', db='jiudian')
    curor = conn.cursor()

    3、网站页面的获取

    headers={
    
            "Connection": "keep-alive",
            "origin":"http://hotels.ctrip.com",
            "Host": "hotels.ctrip.com",
            "referer": "#需要获取的页面网址",
            "user-agent":"通过f12查找",
    
        }

    4、具体源的获取

    data={ 
        "cityId":2,  
        "cityPY":" shanghai",
        "cityCode":"021",
        "cityLat": 121.22,
        "cityLng":31.03,
        "page":i,
        }

    5、所需字段信息获取

        for n in range(0,25):
            dianming = aa["hotelPositionJSON"][n]["name"]
    
            # eval函数,将列表样式的字符串转化为列表
            jiage=eval(aa["HotelMaiDianData"]["value"]["htllist"])[n]["amount"]
            xinji=aa["hotelPositionJSON"][n]["star"][-2:]
            dangci=aa["hotelPositionJSON"][n]["stardesc"]
            pingfen=aa["hotelPositionJSON"][n]["score"]
            lianjie="http://hotels.ctrip.com"+aa["hotelPositionJSON"][n]["url"]
            dizhi=aa["hotelPositionJSON"][n]["address"]
            ss += 1
            lists.append([ss, dianming,xinji,dangci,pingfen,jiage + "元",lianjie,dizhi])
    

    6、存储为CSV格式

    with open("shjiudian.csv", "w", encoding="utf-8",newline="") as f:
        k = csv.writer(f, dialect="excel")
        k.writerow(["数量", "酒店名", "星级", "档次", "评分", "价格","链接","地址"])
    

    7、运行程序,由于数据有一万多条,而且中途可能会被阻断,所以时间较长,请耐心等待。

    运行完成后,会出现CSV文件。

    展开全文
  • import pymysql import decimal import datetime import json import LogPackage import logging import os logs=LogPackage.Logger(filename='log.txt',path=1,driver_path=os.getcwd()) logs.Log() logger=loggin...
    import pymysql
    import decimal
    import datetime
    import json
    import LogPackage
    import logging
    import os
    
    logs=LogPackage.Logger(filename='log.txt',path=1,driver_path=os.getcwd())
    logs.Log()
    logger=logging.getLogger(__name__)
    
    
    __description__='Finding the data in the same database'
    
    class DecimalEncoder(json.JSONEncoder):
        def default(self,obj):
            if isinstance(obj,decimal.Decimal):#decimal类型转换,使其可以转换为json格式数据
                return float(obj)
            elif isinstance(obj,datetime.datetime):#datetime类型转换,使其可以转换为json格式数据
                return obj.__str__()
            return super(DecimalEncoder,self).default(obj)
    
    class RUNSQL(object):
        def run_sql(self):
            db=pymysql.connect(host='服务器地址',port=3306,user='用户名',password='密码',db='数据库名称',charset='utf8')
            self.cursor1=db.cursor()
            self.cursor2=db.cursor()
    
            self.cursor1.execute('desc osc_order;')#获取字段属性默认值
            self.cursor2.execute("SELECT * FROM osc_order WHERE customer_id='47001930' and status_name in('订单已收已付') order by created_at DESC")
    
            db.close()
    
        def sql_test(self):
            self.run_sql()
            index=self.cursor1.fetchall()
            print(index)
            result=[]
            row={}
            for res in self.cursor2.fetchall():
                for i in range(len(index)):
                    row[index[i][0]]=res[i]
                result.append(row)
            # print(result)
            for line in result:
                print(line)
            print(json.dumps(result,cls=DecimalEncoder,indent=4,ensure_ascii=False,sort_keys=True))#输出的是字符串
            # for data in self.cursor.fetchall():
            #     print(data)
    
    
    if __name__=='__main__':
        s=RUNSQL()
        s.sql_test()

    展开全文
  • 关于pymysql的用法

    2020-11-26 11:10:04
    文章目录关于pymysql的安装及用法一、安装pymysql二、数据库的连接三、增加数据四、查询数据五、删除和更新 关于pymysql的安装及用法 pymysql主要的用法就分为四步: 1.建立连接 2.获取游标 3.执行sql语句 4.关闭...

    关于pymysql的安装及用法

    pymysql主要的用法就分为四步:
    1.建立连接
    2.获取游标
    3.执行sql语句
    4.关闭连接,游标
    所以后面我们就围绕这4步来进行

    一、安装pymysql

    直接打开cmd输入下面这行代码就好了

    pip install pymysql
    

    二、数据库的连接

    连接数据库前,请先确认以下事项:
    1.您已经创建了数据库
    2.在创建的数据库里创建了表且有字段
    确认好了我们就可以进行连接了
    连接代码如下:

    import pymysql
    # 打开数据库连接
    #connect方法里需要的参数分别为host='IP地址(默认为localhost)',
    #port='端口号'(默认为3306),
    #db='数据库名(你要连接的数据库)',
    #user='mysql登入用户名',
    #passwd='数据库密码',
    #charset='编码'
    db = pymysql.connect(host='localhost',port=3306,db='zp1',user='root',passwd='root',charset='utf8')
    # 然后就是使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    # 再使用 execute()  方法执行 SQL 查询 
    #括号里放执行语句就好了
    cursor.execute("sql语句")
    #提交执行
    db.commit()
    # 关闭数据库连接
    db.close()
    

    三、增加数据

    第一种方式(插入单条数据):

    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 插入语句
    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
           ('Mac', 'Mohan', 20, 'M', 2000)
    try:
       # 执行sql语句
       cursor.execute(sql)
       # 执行sql语句
       db.commit()
    except:
       # 发生错误时回滚
       db.rollback()
    

    第二种(插入多条数据):

    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 插入语句
    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES ('%s', '%s',  %s,  '%s',  %s)" 
    values=[(1),(值2)···]
    try:
       # 执行sql语句
       cursor.executemany(sql,value)
       # 执行sql语句
       db.commit()
    except:
       # 发生错误时回滚
       db.rollback()
    

    四、查询数据

    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE \
           WHERE INCOME > %s" % (1000)
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 获取所有记录列表
       #fetchone是获取单条数据,一次只拿一条
       #fetchall是获取所有数据,以列表的形式返回
       #fetchmany是指定获取几条数据,参数给要拿的条数就好了,以列表的形式返回
       results = cursor.fetchall()
       for row in results:
          fname = row[0]
          lname = row[1]
          age = row[2]
          sex = row[3]
          income = row[4]
           # 打印结果
          print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
                 (fname, lname, age, sex, income ))
    except:
       print ("Error: unable to fetch data")
     
    # 关闭数据库连接
    db.close()
    

    五、删除和更新

    这两个操作只要执行相关的sql语句就行了
    这样我们数据库的增删改查的四个操作就都介绍完了,码字不易,希望各位看完的小伙伴可以来一个一键三连,谢谢。

    注:本文章仅供参考学习

    展开全文
  • Python使用pymysql小技巧

    2020-12-25 12:40:42
    在使用pymysql的时候,通过fetchall()或fetchone()可以获得查询结果,但这个返回数据是不包含字段信息的(不如php方便)。查阅pymysql源代码后,其实获取查询结果源代码也是非常简单的,直接调用cursor.description...
  • 前情回顾 表的关联查询 (放在from后面) ...获取部分数据提供给使用者 create view [viewName] as select… drop view [if exists] [view] 函数和存储过程 函数: 有返回值 获取一个结果 存储过程:
  • python爬虫获取数据过长,存到数据库会报如下错误: pymysql.err.DataError: (1406, "Data too long for column '字段名' at row 1") 解决方法: 在mysql的命令行界面执行: SET @@global.sql_...
  • import pymysql #pip install -i https://pypi.doubanio.com/simple/ pymysql def list_index(localhost, username, password, database, tabls_name): db = pymysql.connect(host=localhost, port=3306, user=...
  • 使用python获取表的字段名和信息

    千次阅读 2019-01-17 11:08:46
    import pymysql 1. 连接数据库, conn = pymysql.connect( host=‘localhost’, user=‘root’, ...# autocommit=True, # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。 ) ****py...
  • 3)对获取到的数据进行处理; 4)返还前端一个友好的数据格式; import pymysql from hashlibstr import md5_string def user_list_show(): #连接数据库并创建游标 db = pymysql.connect(host="49.234.29.239",...
  • 在mysql自带的表里查询,这个表保存了每张表的字段信息,可以用pymysql执行下面的sql语句 import pymysql conn = pymysql.connect(host="127.0.0.1",user="root",password="123456",db="study",autocommit=True) cur...
  • 用到的包: ...2.某些字段对应的html元素包含一些无效的class,导致通过BeautifulSoup获取不到该字段 3.按地区搜索医院列表的分页数据不能超过100页,超过返回的重复数据,导致需要手工删除hospital,de...
  • 那么既然用到了python操作数据就不免需要用到dataframe做数据分析,本文主要一个麻烦点在于从mysql 中获取到的数据没有字段名, 下面直接上代码: import pymysql import pandas as pd def get_mysql_data(sql): ...
  • ``` ...问题是:today_data获取到的数据有多个字段(code、name、changepercent、trade、open high、low、settlement),那如何在获取数据的时候,生成一张新表?新表的字段获取到的字段一致。
  • 3.解决思路为先获取表的字段名称,然后再获取表里面的数据,最后将这两个列表转为字典,只需直接输出字典的数据就完美解决了 1 cur = conn.cursor() 2 cur.execute(self.sql) 3 print(cur.description[0][0]) ...
  • 背景:在数据库取值时,可能会存在只有程序第一次运行是取一次值,后期修改数据库数据,静态字段将不会重新到数据库中重新取值更新 背景题:在数据库中取值,将获取的值在前端做成下拉列表显示 部分代码展示 帮助...
  • 2、数据字段信息 3、数据获取与转换 (1)默认数据保存在Mysql里面,所有数据取出后保存在all_data里面 import pymysql connection = pymysql.connect("172.17.6.26","raa_user","bigdata123","risk_...
  • 1. 获取数据并存储 这次我获取的数据是在某网站实时更新返回的json数据,然后对json进行处理,给予对应的字段存到数据库中。 import json import pymysql import requests ##获取json数据源 url = '...
  • #建立游标的时候指定游标类型...#字段可以理解为表里面的表头,获取字段的方法:cur.description ''' import pymysql def exu_info(sql): conn = pymysql.connect(host='118.24.3.40',user='***', password='...
  • 为啥要写这个脚本 五一前的准备下班的时候,看到同事为了做数据库的某个表的数据字典,在做一个复杂的人工...第三步:获取数据表的注释 第四步:存储文件夹和文件处理,删除已存在的文件避免重复写入 第五步:先写入M
  • 已知有三个数据库mysql,mongodb和redis,已经分别存储了不同的学生信息,数据全部采用字符串类型,只有id和name两个字段(在mongo和redis中键为id,值为name),现需编写代码实现需求:根据指定id获取对应的name和存储...
  • 爬取中国城乡数据的爬虫,有请求重试机制,只要执行一行命令即可获取所有省市区,另有采集好的mysql版本数据 。 如果命令行卡住的话不要着急退出,稍等2分钟程序会继续运行。 Requirements Python3 Mysql requests ...
  • 后期,我们会从tushare平台获取股票交易数据,为此我们创建一个名为tushare的数据库 创建4张表,分别为“trade_cal:交易日信息”“stock_list 股票信息”“stock_daily 股票交易信息”“index_daily 指数信息” ...
  • 我的思路是这样的,之前的想法是:把接收过来的socket数据,充当sql的字段属性变量,来实现数据写入功能。但是几经波折,发现难题攻克不了。现在,我换了另外一种思路:事先把数据库的插入数据命令写在socket里面,...
  • 【python】ORM

    2019-05-22 17:04:32
    基于pymysql的轻量级mysql ORM 简单实例 ModelDemo().where('id', 4).select('id', 'name').take(5).get() Content 安装 初始化 创建Model 添加数据 添加单条数据 添加多条数据 获取最新插入的ID 更新 更新...
  • for i in range(5, sheet.nrows): #前5行是标题名,对应表中的字段名所以应该从第6行开始,计算机以0开始计数,所以值是6 inidate = sheet.cell(i,0).value #取第i行第0列 initiation_date = xlrd.xldate_as_...
  • 在用户进行操作数据异常,特别是在执行用例时响应值或者其他字段数据比较大或者其他异常时,写入数据库失败导致功能出现未知的异常,考虑写入数据库的异常信息获取并给予相应的提醒 mysql处理代码如下 import ...
  • 一、sql语句介绍: 1.DDL数据定义 2.DML数据库管理语言(database management language) ...5.如何获取结果集中的表的字段 6.关闭游标和连接 应用: 一、sql语句介绍: 1.DDL数据...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

pymysql获取数据字段

mysql 订阅