查询MySQL数据库时,我得到了一些不需要的额外字符。
例如,我没有得到165
,而是得到(165),
,而是尝试以下操作以提取数字。
问题在于,我的代码不会只得到数字,而不会显示任何内容,我找不到原因。有什么建议吗?
arr = ''
num = re.findall('\d+', arr)
mydb = mysql.connector.connect(
host="localhost",
user="root",
database="diff"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM val ORDER BY num DESC LIMIT 1")
myresult = mycursor.fetchall()
for x in myresult:
arr = x
print(arr)
答案 0 :(得分:2)
类似这样的东西:
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="Bellini10-",
database="diff"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM val ORDER BY num DESC LIMIT 1")
myresult = mycursor.fetchall()
pattern = re.compile("\d+")
for x in myresult:
num = pattern.findAll(x)[0]
print(num)
答案 1 :(得分:1)
尝试一下:
whitelist = set('0123456789')
num = ''.join(filter(whitelist.__contains__, arr))
希望这会有所帮助!
答案 2 :(得分:1)
我使用过的大多数Python数据库连接器都会返回元组,因此您需要这样做:
for (x,) in myresult:
print(x)
您应该得到想要的东西
我得到的文档建议您也可以将光标只是一个可迭代的上下文管理器,例如:
with mydb.cursor() as cur:
cur.execute("SELECT * FROM val ORDER BY num DESC LIMIT 1")
for (x,) in cur:
print(x)
会更惯用的Python