python - Python中带有悬空逗号的Where子句
问题描述
我正在学习W3school的 Python 教程。
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address LIKE %s"
adr = ("Yellow Garden 2", ) // I don't understand this part!!!
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
但是,当我删除逗号后的空格时,会出现错误。
adr = ("Yellow Garden 2", )
-->adr = ("Yellow Garden 2" )
1)我想知道为什么逗号后需要一个空格。
2) 为什么我也需要一个括号 ( ) ?(当我删除括号时,我也会收到错误消息。)喜欢adr = "Yellow Garden 2"
解决方案
adr = ("Yellow Garden 2", )
这定义adr
为tuple
具有单个元素的 a。您可以通过以下方式进行验证:
type(adr)
应该:
<class 'tuple'>
当您删除逗号时,
(它是逗号导致它,而不是空格),adr
变成一个简单的字符串:
adr = ("Yellow garden 2")
type(adr)
应该:
<type 'str'>
MySQL API 期望 atuple
作为参数传递,因此会出现错误。这(soemthing,)
就是在 python 中定义单元素元组的方式。
推荐阅读
- pine-script - 结合两个面临缩放问题的内置 pine 脚本指标
- azure - 如何从 API Azure DevOps 获取测试步骤操作/预期结果描述
- typescript - 打字稿(Lodash)字典顺序
- android - CreateProcess error=2,系统找不到指定的文件,shadowsocks app
- python - 根据分位数标记变量 [Python]
- css - 应用的媒体屏幕在 Microsoft Edge 中的 Chrome 中也不起作用
- arrays - Perl,遍历哈希数组并根据条件打印特定的哈希元素
- r - R:如何使用随时间变化的断点有效地装箱?
- java - JAVA Xml Unmarshaller Null Pointer Exception(+ JavaFx,但我认为它与我的问题无关)
- php - 从 2 个日期差计算天数的问题