簡體   English   中英

在Python中從字符串中提取數字

[英]Extracting numbers from a string in Python

當我查詢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)

可能是這樣的:

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)

嘗試這個:

whitelist = set('0123456789')
num = ''.join(filter(whitelist.__contains__, arr))

希望這可以幫助!

我使用過的大多數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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM