gpt4 book ai didi

mysql - 适用于 Python 的格式正确的 Mysql 查询

转载 作者:行者123 更新时间:2023-11-30 22:43:30 27 4
gpt4 key购买 nike

我正在为 mysql 查询的格式设置而苦苦挣扎,我希望您能为我指出正确的方向。这是查询

sql = "SELECT price FROM inventory WHERE card_name = %s AND card_set = %s"
sql_rare = "SELECT rarity FROM inventory WHERE card_name = %s AND card_set = %s"
sql_count = "SELECT count(*) FROM inventory WHERE card_name = %s AND card_set = %s

当我运行以下代码时,使用 sql_count 查询,我收到一条错误消息:

File "C:\Users\Spencer\Desktop\Python Programs\PythonMTG\Revision3AutoAndManual\51515\magicassistantcsv.py", line 264, in output_card for row in getmtgprice.query(sql_count, ([card_name, set_name])): TypeError: query() takes exactly 4 arguments (3 given)

这里是产生这个错误的代码:

getmtgprice = PriceCheck()
for row in getmtgprice.query(sql_count, ([card_name, set_name])):
if row[0] ==0:
priced_card = '0.00'

这是 PriceCheck 函数:

class PriceCheck(object):
def __init__(self):
self.conn = MySQLdb.connect(host='localhost', user='root', passwd='', db='mscan')
self.c = self.conn.cursor()

def query(self, arg, cardname, setname):
self.c.execute(arg, cardname, setname)
return self.c

def __del__(self):
self.conn.close()

你看到我错在哪里了吗?

最佳答案

您的query 方法为cardnamesetname 采用单独的参数,而不是包含两者的列表。所以,而不是:

for row in getmtgprice.query(sql_count, ([card_name, set_name])): 

你应该:

for row in getmtgprice.query(sql_count, card_name, set_name): 

关于mysql - 适用于 Python 的格式正确的 Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com