Python的最大字段数.format

时间:2015-06-04 16:41:52

标签: python string format range tuples

我使用Python string.format()方法构建了一个很长的mysql查询。但是,当我尝试使用超过10个字段({0}到{10})时,我得到一个超出范围错误的元组。当我只使用10个字段({0}到{9})时,没有问题。

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

2 个答案:

答案 0 :(得分:2)

您可以使用的占位符数量实际上没有限制;如果您收到索引错误,则错误计划您要格式化的元素数量。{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注入安全漏洞),并允许数据库重用查询的查询计划。

答案 1 :(得分:1)

您可以将多少内容放入字符串中。您的逻辑出错:

  

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

那是因为你有11件事需要补充,当你只提供10件时。元组从0开始,所以十件物品元组只会......

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

这就是为什么当你{0} to {9}时,你没有收到错误。