迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 Python 中错误 TypeError: Non-Empty Format String Passed to Object.__format__

作者:迹忆客 最近更新:2023/07/05 浏览次数:

python 中的 format() 方法允许您替换变量并执行数据格式化。 此方法并非旨在处理除以下内容之外的任何输入:

  • 字符串表示为 s
  • 十进制表示为 d
  • 浮点数表示为 f
  • 字符表示为 c
  • 八进制表示为 o
  • 十六进制表示为 x
  • 二进制表示为 b
  • 指数表示为 e

如果任何其他数据类型访问该方法,解释器将引发以下错误:

TypeError: non-empty format string passed to object.__format__

Python中TypeError: Non-Empty Format String Passed to Object.__format__ 的原因及解决方案

假设我们尝试对没有此方法的数据类型调用 format() 方法,例如字节数据类型。 解释器会抛出错误,因为字节类型对象没有 format() 方法。

在下面的代码中,我们有意使用字节数据类型调用 format() 方法。

示例代码:

#Python 3.x
'{:10}'.format(b'jiyik')

输出:

Python中TypeError: Non-Empty Format String Passed to Object.__format__

此错误的解决方案是将数据类型从字节显式转换为字符串。 我们将使用 !s 符号进行转换。

示例代码:

#Python 3.x
s='{!s:10s}'.format(b"jiyik")
print(s)

输出:

#Python 3.x
b'jiyik'

当我们尝试格式化 None 时,也会引发 TypeError: non-empty format string Passed to object.__format__

示例代码:

#Python 3.x
'{:.0f}'.format(None)

输出:

格式化 None

解决方案是传递有效的数据类型而不是 None。

示例代码:

#Python 3.x
s='{!s:10s}'.format(b"jiyik")
print(s)

输出:

#Python 3.x
b'jiyik'

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

修复Python中错误 TypeError: Int Object Is Not Iterable

发布时间:2023/07/07 浏览次数:160 分类:Python

本篇文章将介绍如何修复 Python 中的 TypeError: 'int' object is not iterable 错误。修复 Python 中的 TypeError: Int Object Is Not Iterable 错误 让我们看一个 Python 中的 TypeError 异常的示例。

Python 中错误 ValueError: Not Enough Values to Unpack

发布时间:2023/07/07 浏览次数:114 分类:Python

本文将通过示例详细介绍每个场景,但在此之前,让我们先了解一下 Python 中的 ValueError 是什么。Python 中的 ValueError 是什么ValueError: not enough values to unpack (expected 3, got 2)

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便