13.利用pymysql创建变量类型的表名解说
2024-08-21 03:21:07
在练习爬虫爬取数据时,想将爬取的数据用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)"
最新文章
- 学习 AppFuse
- 转载(sublime text 2 调试python时结果空白)
- iOS企业级开发初级课程-UIView与控件(20集)
- hibernate笔记03
- Objective-C基调(4)Category
- js第一天 innerHTML和value 的区别
- rmdir 命令详解
- 【效率神奇】Github丧心病狂的9个狠招
- Git源码管理工具使用
- js 对象与json的转化
- eclipse 安装 lombok插件
- 算法实践--最小生成树(Kruskal算法)
- Mac上搭建rtmp流媒体服务器(结合FFmpeg的使用)
- Linux查看系统负载(CPU和MEM考虑)
- Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】
- [转] Java DecimalFormat 用法
- 4G厂商版《出师表》
- Linux-Ubuntu14.04下mongodb安装部署
- 表析LESS、Sass和Stylus的异同
- Drupal8入门文章推荐
热门文章
- H3C UDP封装
- H3C RARP
- functiils.lru_cache缩短递归时间
- Python--day23--面向对象思想求正方形面积
- 解析PHP跳出循环的方法以及continue、break、exit的区别介绍
- win10 uwp 使用 Azure DevOps 自动构建
- 【u233】单词化简
- python写的有声小说爬虫
- vue-learning:28 - component - 组件事件的修饰符`.native / .sync`,以及组件属性`model`
- java 环境 笔记