我最近遇到了这个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)
这个例外是什么意思?有没有办法让它更清晰?