小编Chr*_*Lee的帖子

Python TypeError:传递给object .__ format__的非空格式字符串

我最近遇到了这个TypeError异常,我发现很难调试.我最终将它减少到这个小测试用例:

>>> "{:20}".format(b"hi")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: non-empty format string passed to object.__format__
Run Code Online (Sandbox Code Playgroud)

无论如何,这对我来说非常不明显.我的代码的解决方法是将字节字符串解码为unicode:

 >>> "{:20}".format(b"hi".decode("ascii"))
 'hi                  '
Run Code Online (Sandbox Code Playgroud)

这个例外是什么意思?有没有办法让它更清晰?

python string-formatting python-3.x

74
推荐指数
2
解决办法
6万
查看次数

FLASK中非现有参数的异常

我有一个发送参数的表单.在我的表格中,我有一个复选框.如果没有勾选我的复选框,那么我将不会获得任何参数.

如果在我的模块中我有:

var = request.form['mycheckbox']
Run Code Online (Sandbox Code Playgroud)

并且如果未选中我的复选框(参数未通过)

然后在调试模式下,我收到错误消息:

错误请求浏览器(或代理)发送了此服务器无法理解的请求.

什么都没告诉我错误是什么.

我使用以下方法阻止了异常:

    try:
        var=request.form['checkbox']
    except:
        var=None
Run Code Online (Sandbox Code Playgroud)

但是,我能不能改变Flask如何处理这种情况的行为?

python werkzeug flask

10
推荐指数
2
解决办法
4490
查看次数

"k in d"怎么可能是假的,但是"d.keys()中的k"是真的吗?

我有一些python代码抛出KeyError异常.到目前为止,我还没有能够在操作环境之外重现,所以我不能在这里发布一个简化的测试用例.

引发异常的代码正在迭代循环,如下所示:

for k in d.keys():
    if condition:
        del d[k]
Run Code Online (Sandbox Code Playgroud)

del[k]行抛出异常.我try/except在它周围添加了一个条款,并且能够确定它k in d是假的,但是k in d.keys()是真的.

关键d是旧式类实例的绑定方法.

该类实现了__cmp____hash__,因此,这就是我一直专注我的注意.

python dictionary python-2.x

7
推荐指数
2
解决办法
1084
查看次数