剥离()的优雅方式python

Elegant way to strip() python

我必须用 Python 剥离()我的数据库输出,它已经可以工作了。但是有没有更优雅的方法来做到这一点?

这是我的代码:

import MySQLdb
conn= MySQLdb.connect("localhost","root","testPW","MixOMat")
c=conn.cursor()
c.execute("SELECT Zutat1 FROM Rezepte WHERE RezeptID=1")
z1=str(c.fetchall())
z1=z1.strip("(")
z1=z1.rstrip(")")
z1=z1.rstrip(",")
z1=z1.rstrip(")")
z1=z1.rstrip(",")
z1=z1.rstrip("L")
print(z1)

只需使用一个for循环

for e in ["(",")", ","...]:
    z1=z1.strip(e)

功能方法:

from functools import reduce

z1 = reduce(lambda x: z1.strip(x), ["(",")", ","...])

甚至只是:

z1 = z1.strip("".join(["(",")", ","...]))
import MySQLdb
conn= MySQLdb.connect("localhost","root","notna99","MixOMat")
c=conn.cursor()
c.execute("SELECT Zutat1 FROM Rezepte WHERE RezeptID=1")
z1=str(c.fetchall())
z1=z1.strip("(").rstrip(")").rstrip(",").rstrip(")").rstrip(",").rstrip("L")
print(z1)

这是另一种方法,或者您可以使用切片。

首先,.strip参数是你要去除的字符,所以只需要调用2次

z1 = z1.strip('(').rstrip(')L')

其次,你做错了,获取数据的正确方法(我认为)应该是:

c.execute("SELECT Zutat1 FROM Rezepte WHERE RezeptID=1")
(z1, ) = c.fetchone()

请注意,我假设您只有一行要检索

这将直接检索一个整数而不是字符串表示