Python.format的最大字段数

Python.format的最大字段数,python,string,format,range,tuples,Python,String,Format,Range,Tuples,我正在使用Python string.format()方法构建一个相当长的mysql查询。然而,当我尝试使用10个以上的字段({0}到{10})时,我会得到一个元组超出范围的错误。当我只使用10个字段({0}到{9})时,没有问题 我真的只需要知道.format()可以处理多少个字段,如果可能的话,如何处理#9以上的字段。谢谢大家! 您可以将尽可能多的内容放入字符串中。您的逻辑有错误: 当我尝试使用超过10个字段({0}到{10})时,我会得到一个元组超出范围的错误 这是因为你有11件事要补充,

我正在使用Python string.format()方法构建一个相当长的mysql查询。然而,当我尝试使用10个以上的字段({0}到{10})时,我会得到一个元组超出范围的错误。当我只使用10个字段({0}到{9})时,没有问题


我真的只需要知道.format()可以处理多少个字段,如果可能的话,如何处理#9以上的字段。谢谢大家!

您可以将尽可能多的内容放入字符串中。您的逻辑有错误:

当我尝试使用超过10个字段({0}到{10})时,我会得到一个元组超出范围的错误

这是因为你有11件事要补充,而你只提供10件。元组从0开始,所以一个十项元组只能是

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 # Count! That's 10 items!

这就是为什么当您执行
{0}到{9}
时,不会出现错误;如果您得到一个索引错误,您就错算了正在格式化的元素的数量<代码>{10}否则可以正常工作:

>>> '{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}'.format(*range(11))
'0 1 2 3 4 5 6 7 8 9 10'
考虑到由于计数从零开始,因此有11个元素


但是,您不应该使用
str.format()
生成SQL查询。改为使用SQL参数,以确保正确引用(防止SQL注入安全漏洞),并允许数据库重新使用查询的查询计划。

您意识到11不是10是吗?你真的有11个值吗?