在练习爬虫爬取数据时,想将爬取的数据用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)"

13.利用pymysql创建变量类型的表名解说的更多相关文章

  1. 利用pymysql同时修改两张表的数据

    使用pymysql操作数据库中相关联的两张表需求:两张表中分别有一个字段是json格式,需要往json中再插入一个属性值’container_cloud’=’fasle’. import pymysq ...

  2. Oracle创建删除用户,角色,表空间,导入导出数据库命令总结(转载)

    无意间看到一篇文章,觉得对于ORACLE的新手很实用,特转载,原文出处这里 说明:在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后 ...

  3. 关于mysql存储过程创建动态表名及參数处理

      转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)  近期游戏開始第二次内測,開始处理操作日志.最開始把日志放到同一个表里面,发现一天时间,平均100玩家 ...

  4. [转]mysql在windows下支持表名大小写,lower_case_table_names

    windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感.用phpmyadmin创建的驼峰式表名,全部被强制成小写.mysql表名大小写敏感的参数: lower_case_table_ ...

  5. mysql在windows下支持表名大小写,lower_case_table_names

    windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感.用phpmyadmin创建的驼峰式表名,全部被强制成小写.mysql表名大小写敏感的参数: lower_case_table_ ...

  6. 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

    内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告:   文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...

  7. 利用Oracle创建表空间和用户

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...

  8. 如何利用WordPress创建自定义注册表单插件

    来源:http://www.ido321.com/1031.html 原文:Creating a Custom WordPress Registration Form Plugin 译文:创建一个定制 ...

  9. sqlserver查询所有表名、字段名、类型、长度和存储过程、视图的创建语句

    -- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i ...

随机推荐

  1. 深入理解iptables防火墙

    0x00 Linux 安全性和 netfilter/iptables Linux 因其健壮性.可靠性.灵活性以及好象无限范围的可定制性而在 IT 业界变得非常受欢迎.Linux 具有许多内置的能力, ...

  2. pip、conda 换国内源,大大提高下载速度

    https://www.jianshu.com/p/b2d53904dd37 源就是下载地址了,换到国内的源下载速度真的快了近10倍,这里都用了清华的源 pip 只要新建一个配置文件,写上路径就行了 ...

  3. springboot2.04与activiti 6.0集成

    本文就不对activiti做解释,下面直接看项目集成 以下顺序方面根据我的理解来,可以先从第二章看,再看第一张与第三章 增加activiti表的API,备注用. 目录 一.springboot2.X集 ...

  4. supersockets和 AppSession,AppServer 配合工作

    现在, 你已经有了 RequestInfo, ReceiveFilter 和 ReceiveFilterFactory, 但是你还没有正式使用它们. 如果你想让他们在你的程序里面可用, 你需要定义你们 ...

  5. Pytorch中多GPU训练指北

    前言 在数据越来越多的时代,随着模型规模参数的增多,以及数据量的不断提升,使用多GPU去训练是不可避免的事情.Pytorch在0.4.0及以后的版本中已经提供了多GPU训练的方式,本文简单讲解下使用P ...

  6. H3C PPP的特点

  7. Java5新特性对数组的支持

    增强for循环 → for-each for (参数类型参数名 : 数组名) { 代码块 } Eg: package reviewDemo; public class Demo6 { public s ...

  8. C# 序列类为 xml 可以使用的特性大全

    本文告诉大家如何使用序列类,以及序列时可以用到的特性,特性的作用和一些容易被问的问题 最近我在把项目文件修改为 VisualStudio 2017 的格式,请看从以前的项目格式迁移到 VS2017 新 ...

  9. 2019-8-31-C#-获取-PC-序列号

    title author date CreateTime categories C# 获取 PC 序列号 lindexi 2019-08-31 16:55:58 +0800 2018-7-30 10: ...

  10. 闲来无事写一个jquery计算器,没有进行封装......

    <!doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...