TypeError:我的项目中没有足够的参数用于格式化字符串



请提供帮助。我将数据插入数据库的代码返回错误消息:

insertVar =("INSERT INTO %a ( ticker, date, openPrice, dayHigh, dayLow, closePrice, volume ) VALUES ( %s, %s, %s, %s, %s, %s, %s)" %(stripedTicker))

TypeError:没有足够的参数用于格式化字符串。

代码为

def insertData (data):
insertVar =("INSERT INTO %a ( ticker, date, openPrice, dayHigh, dayLow, closePrice, volume ) VALUES ( %s, %s, %s, %s, %s, %s, %s)" %(stripedTicker))
cur.execute(insertVar, data)
conn.commit()

变量data = ['Access Bank Plc', '2018-12-15', '7.45', '7.50', '7.45', '7.45', '18,152,221']对于如何解决这一问题的任何帮助,我们将不胜感激。谢谢

错误通知您insertVar变量需要stripedTicker中的8个参数。我猜您的stripedTicker变量只包含一个用于格式化%a的参数。(并且您希望保持%s的由cur.execute()格式化。(

例如,这将适用于

print('%s %s' % ('a', 'b')) # prints 'a b'

但是下面的不会

print('%s %s' % ('a')) # TypeError: not enough arguments for format string

因为CCD_ 9格式化器期望自变量填充每个CCD_。除非在%s参数的前面添加额外的百分比符号(%(,否则当前格式化字符串的方法将不起作用。例如

print('%s %%s' % ('a')) # prints 'a %s'

因此,在您的%s中添加额外的%。。。

insertVar = ("INSERT INTO %a ( ticker, date, openPrice, dayHigh, dayLow, closePrice, volume )   
VALUES ( %%s, %%s, %%s, %%s, %%s, %%s, %%s)" % (stripedTicker))

选择另一种格式化方式,例如使用f-string:

insertVar = f"INSERT INTO {stripedTicker} ( ticker, date, openPrice, dayHigh, dayLow, closePrice, volume )   
VALUES ( %s, %s, %s, %s, %s, %s, %s)"

.format()

insertVar = "INSERT INTO {} ( ticker, date, openPrice, dayHigh, dayLow, closePrice, volume )   
VALUES ( %s, %s, %s, %s, %s, %s, %s)".format(stripedTicker)

相关内容

  • 没有找到相关文章