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

最新文章

  1. 学习 AppFuse
  2. 转载(sublime text 2 调试python时结果空白)
  3. iOS企业级开发初级课程-UIView与控件(20集)
  4. hibernate笔记03
  5. Objective-C基调(4)Category
  6. js第一天 innerHTML和value 的区别
  7. rmdir 命令详解
  8. 【效率神奇】Github丧心病狂的9个狠招
  9. Git源码管理工具使用
  10. js 对象与json的转化
  11. eclipse 安装 lombok插件
  12. 算法实践--最小生成树(Kruskal算法)
  13. Mac上搭建rtmp流媒体服务器(结合FFmpeg的使用)
  14. Linux查看系统负载(CPU和MEM考虑)
  15. Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】
  16. [转] Java DecimalFormat 用法
  17. 4G厂商版《出师表》
  18. Linux-Ubuntu14.04下mongodb安装部署
  19. 表析LESS、Sass和Stylus的异同
  20. Drupal8入门文章推荐

热门文章

  1. H3C UDP封装
  2. H3C RARP
  3. functiils.lru_cache缩短递归时间
  4. Python--day23--面向对象思想求正方形面积
  5. 解析PHP跳出循环的方法以及continue、break、exit的区别介绍
  6. win10 uwp 使用 Azure DevOps 自动构建
  7. 【u233】单词化简
  8. python写的有声小说爬虫
  9. vue-learning:28 - component - 组件事件的修饰符`.native / .sync`,以及组件属性`model`
  10. java 环境 笔记