zoukankan      html  css  js  c++  java
  • 13.利用pymysql创建变量类型的表名解说

    在练习爬虫爬取数据时,想将爬取的数据用pymysql存储到数据库中,并且存储时的表名是一个变量,但在写完代码运行后经常出面1064的错误代码,在网上查找相关解决方法,但一直找不到完美的解决方法,

    通过各网友的解决,并结合自己的理解,终于完美解决了该问题:

    现将过程说明如下:

    def save_data(i,n,data1,m,data2):
        table_name = 'xwl_{}'.format(i)  # 此为表名的变量名
        conn=pymysql.connect(host='localhost',user='root',
                             password='root',charset='utf8',port=3306)
        cursor=conn.cursor()
        # 创建一个名为xwl_test的数据库
        cursor.execute('create database if not exists xwl_test character set utf8;')
        cursor.execute('use xwl_test;')
        sql1="create table if not exists `%s`(序号 int,电视剧名称 char(255),集数 char(20),下载地址 char(255)) character set utf8" %(table_name)
        cursor.execute(sql1)
        sql2="insert into `%s`(序号,电视剧名称,集数,下载地址)" %table_name +" values(%s,%s,%s,%s)"
        cursor.execute(sql2,(n,data1,m,data2))
        conn.commit()
        conn.close()

    说明:

    # 创建数据库中的变量表名

    sql1="create table if not exists `%s`(序号 int,电视剧名称 char(255),集数 char(20),下载地址 char(255)) character set utf8" %(table_name)

    1.此代码中`%s`中的点(`)此符号就是在ESC下面的那个带波浪符号的(~)键,%s两边各一个,而且必须用此符号,不然会报错。

    2.此代码是表示创建一个表名为变量的表(如果表名不是变量,则代码为)

    sql1="create table if not exists table_name(序号 int,电视剧名称 char(255),集数 char(20),下载地址 char(255)) character set utf8"

    以上表名为常量,比较两种代码发现,表名为变量名时,只需要将表名位置改成`%s`就可以,然后在sql1语句后加占位符%(table_name),此处table_name为变量名

    # 在变量表名中的数据库中插入数据

    sql2="insert into `%s`(序号,电视剧名称,集数,下载地址)" %(table_name) +" values(%s,%s,%s,%s)"

    1.此代码中`%s`就是表变量名的占位符,对应如下未用变量名的表名my_xwl,然后跟上表变量名中的内容(序号,电视剧名称,集数,下载地址),然后结束字符串,

    然后加上占位符%table_name,然后再用加(+)号将前后字符串连接起来,注意" values(%s,%s,%s,%s)"中,values前是有一个空格的。

    sql="insert into my_xwl(序号,tv_title,num,download) values(%s,%s,%s,%s)"
  • 相关阅读:
    云计算在未来发展中的重要性体现在哪里?
    四大优势凸显,云计算成大势所趋
    边缘计算的今天、明天和未来
    以太坊年底前这5件大事,能否带来大惊喜?
    量子计算是什么?它到底有什么用?
    加快边缘计算发展的十大趋势
    树结构练习——排序二叉树的中序遍历
    树结构练习——排序二叉树的中序遍历
    数据结构实验之二叉树的建立与遍历
    数据结构实验之二叉树的建立与遍历
  • 原文地址:https://www.cnblogs.com/ubuntu1987/p/11676465.html
Copyright © 2011-2022 走看看