gpt4 book ai didi

python : Typeerror : Non-empty format string passed to object. __format__

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:05 29 4
gpt4 key购买 nike

我知道有人问过这个问题here但解决方案对我不起作用。我正在使用 python 3.4

我的脚本中有以下格式:

print ( "\t {0:20} {1:<11} {2:<25} {3:11} {4:11} {5:>32}".format( files.name.split('/')[-1], sizeof_fmt(files.size),
str( formatted_timestamp ), files.owner,
files.version_id, files.etag ))

这适用于 python 2.7.x。但是在 3.4 中我得到了错误:

File "test.py", line 3, in file_print
versionid, etag ))
TypeError: non-empty format string passed to object.__format__

我试过这个:

print ( "\t {0:20} {1:<11} {2:<25} {3:11} {!s4:11s} {!s5:>32s}".format( files.name.split('/')[-1], sizeof_fmt(files.size),
str( formatted_timestamp ), files.owner,
files.version_id, files.etag ))

但我仍然得到同样的错误。我什至将 versionidetag 转换为字符串并最终得到相同的错误。谁能给我解释一下?

Etag 看起来像这样9893532233caff98cd083a116b013c0b,versionid 是None

最佳答案

您的一个参数是没有自己的 __format__() 方法的类型,因此使用 object.__format__() 代替。

object.__format__() 不支持任何格式化选项,包括字段宽度和对齐方式,这就是您收到错误的原因。

首先转换为字符串应该有所帮助,但您确实需要将转换放在字段名称​​之后;而不是 {!s4:11s} 使用 {4!s:11s} 等:

print ( "\t {0:20} {1:<11} {2:<25} {3:11} {4!s:11s} {5!s:>32s}".format(
files.name.split('/')[-1], sizeof_fmt(files.size),
str(formatted_timestamp), files.owner,
files.version_id, files.etag))

关于 python : Typeerror : Non-empty format string passed to object. __format__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613676/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com