TypeError: not enough arguments for format string, 字符串%批处理问题

何世友 发布于 2011/08/15 16:14
阅读 12K+
收藏 0

TypeError: not enough arguments for format string

 

在往mysql中插入记录时,遇到这个问题,代码层面无错误,各参数无错位,查了半天,才发现,用户输入那边,一个字符串型的参数,含有“%”,这个“%”造成python认为此字符串有format倾向,于是酿成大错。

 

我的修改是将每一个有可能包涵“%”的字符串都进行修复(

str.replace('%','%%')
)但是,这样涉及到太大的工作量,不知有何办法可以减少工作量?

加载中
0
用户名已存在
用户名已存在

RE

如果本来字符串包含‘%%’这种格式,你的方法岂不是改成了‘%%%%’

re.sub(r'%(?!%)', '%%', strin)

0
何世友
何世友

引用来自“用户名已存在”的答案

RE

如果本来字符串包含‘%%’这种格式,你的方法岂不是改成了‘%%%%’

re.sub(r'%(?!%)', '%%', strin)

偶数在字符串存储时,当做转义,这样,我取出来展现后,还是之前的,如表单接收“%%%fdsfsdf” ---> 处理并存储“%%%%%%fdsfsdf”,下次取出并显示时,则会继续“%%%fdsfsdf”。

只改一个%的问题,如果原始接收数据是“%%5” --->处理后还是“%%5”,这样取出来之后,会变成“%5”,这样用户输入则遭到了破坏。

返回顶部
顶部