第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python類型元組無法轉(zhuǎn)換MySQL

Python類型元組無法轉(zhuǎn)換MySQL

Smart貓小萌 2023-12-05 15:30:21
我真的不明白元組是如何工作的。但我所知道的是它們看起來像這樣。    (1, variable)但我不斷收到錯(cuò)誤:Python type tuple cannot be converted有人可以幫忙嗎這是我的代碼:    @client.command()async def buy(ctx, item: str):    USER_ID = ctx.message.author.id    write_log("Buy command requested")    #write_log("Sending GET request to Cosmos API...")    try:        SQL.execute("SELECT price FROM shop WHERE itemname = %s", (item,))        price = SQL.fetchone()        SQL.execute("SELECT balance FROM Accounts WHERE user_id = %s", (USER_ID,))        SQL.execute("UPDATE Accounts SET balance = balance - %s WHERE user_id = %s", (price, USER_ID))        db.commit()        await ctx.send(f"Successfully bought **{item}** for **{price} Rollars**.")    except Exception as ex:        write_log('ERROR')        full_traceback = traceback.format_exc()        write_log(f'Errored whilst sending ctx(embed), (about): {ex} {full_traceback}')完整的回溯:Traceback (most recent call last):  File "Bot.py", line 316, in buy    SQL.execute("UPDATE Accounts SET balance = balance - %s WHERE user_id = %s", (price, USER_ID))  File "/home/vihanga/lib/python3.8/site-packages/mysql/connector/cursor_cext.py", line 248, in execute    prepared = self._cnx.prepare_for_mysql(params)  File "/home/vihanga/lib/python3.8/site-packages/mysql/connector/connection_cext.py", line 626, in prepare_for_mysql    result = self._cmysql.convert_to_mysql(*params)_mysql_connector.MySQLInterfaceError: Python type tuple cannot be converted如果您能向我解釋它是如何工作的并可能幫助我解決錯(cuò)誤,我將不勝感激。
查看完整描述

1 回答

?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

fetchone() 函數(shù)以元組形式返回結(jié)果。因此,當(dāng)您使用 fetchone 時(shí),存儲(chǔ)在價(jià)格變量中的值是一個(gè)如下所示的元組:(100,)。然后,當(dāng)您執(zhí)行更新查詢時(shí),您將傳遞整個(gè)元組,因?yàn)槟诹硪粋€(gè)元組中收到了它。例如,如果價(jià)格值返回為100,那么下面是您傳遞給執(zhí)行函數(shù)的內(nèi)容。 SQL.execute("UPDATE ..... ", ((100,), USER_ID))

因此,參數(shù)的第一個(gè)元素是元組而不是值,并且您會(huì)收到該錯(cuò)誤,因?yàn)閿?shù)據(jù)庫認(rèn)為那里有一些可以使用的值,但是由于它找到一個(gè)元組作為第一個(gè)元素,因此您會(huì)收到該錯(cuò)誤。您應(yīng)該做的只是傳遞一個(gè)整數(shù)值作為價(jià)格參數(shù),因此它看起來像這樣:SQL.execute("UPDATE ..... ", (100, USER_ID)) 為此,您可以通過在元組前面放置 * 來解壓元組,或者從中獲取第一個(gè)值,例如price[0]。


查看完整回答
反對(duì) 回復(fù) 2023-12-05
  • 1 回答
  • 0 關(guān)注
  • 341 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)