Python3.x版本中新的字符串格式化方法

yipeiwu_com7年前Python基础

我们知道Python3.x引入了新的字符串格式化语法。不同于Python2.x的

复制代码 代码如下:

"%s %s "%(a,b) 

Python3.x是
复制代码 代码如下:

"{0} {1}".format(a,b) 

今天我在用MySQLdb时,需要用带参数的
复制代码 代码如下:

cursor.execute(sql,param) 

语句来完成SQL操作。被其他文章的陈旧说法给误导,用了

复制代码 代码如下:

cursor.execute('insert into test values(%s,%s,%s)',param) 

其中param是一个元组,表示要插入的数据,元组中的各个元素即是数据库中各列的值。
但是执行起来总是会抛出数据库异常,错误信息:
复制代码 代码如下:

【1064】You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'(%s,%s,%s)'at line……(以下省略)。

其实只要改成这样就好:
复制代码 代码如下:

cursor.execute('insert into test values({0},{1},{2})',param) 

实话说,Python3为了填上Python2的各坑导致了不向下兼容,使得学习Python3的成本提高了不少。但是为了不阻碍科技发展、社会进步,我还是毅然决然投身新版本……

相关文章

pyqt 实现为长内容添加滑轮 scrollArea

pyqt 实现为长内容添加滑轮 scrollArea

如果一个页面里头的内容太长,怎么办? 之前一直以为要添加Scroll Bar,但是不知道怎么把bar和内容关联到一起(有了解的朋友希望给我留言),后来发现可以用Scroll Area实现...

深入理解python中函数传递参数是值传递还是引用传递

目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综...

python 修改本地网络配置的方法

本文主要说一下怎么使用Python来修改本地的ip和dns等,因为有本地的ip和dns都是随机获取的,有些时候不是很方便,需要修改,我就稍微的封装了一下,但是随机ip和网关、子网掩码等我...

pandas实现将日期转换成timestamp

pandas实现将日期转换成timestamp

OUTLINE 常见的时间字符串与timestamp之间的转换 日期与timestamp之间的转换 常见的时间字符串与timestamp之间的转换 这里说的字符串不是一般意义上的字符串,...

PyTorch搭建一维线性回归模型(二)

PyTorch搭建一维线性回归模型(二)

PyTorch基础入门二:PyTorch搭建一维线性回归模型 1)一维线性回归模型的理论基础 给定数据集,线性回归希望能够优化出一个好的函数,使得能够和尽可能接近。 如何才能学习到参数和...