Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I know this question has been asked here but the solution does not work for me. I am using python 3.4.

I have the following formatting in my script :

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 ))

This works in python 2.7.x. But in 3.4 I get the error:

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

I tried this:

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 ))

But I still get the same error. I even converted the versionid and etag to strings and end up getting the same error. Can someone explain this to me?

Etag look like this 9893532233caff98cd083a116b013c0b, versionid is None

like image 554
Beginner Avatar asked Dec 08 '25 06:12

Beginner


1 Answers

One of your parameters is a type that doesn't have their own __format__() method, so object.__format__() is used instead.

object.__format__() doesn't support any formatting options, including field widths and alignment, which is why you get the error.

Conversion to string first should help, but you do need to put your conversion after the field name; instead of {!s4:11s} use {4!s:11s}, etc:

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))
like image 97
Martijn Pieters Avatar answered Dec 12 '25 13:12

Martijn Pieters



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!