Object Serialization

Serializing means converting a Pyrogram object, which exists as Python class instance, to a text string that can be easily shared and stored anywhere. Pyrogram provides two formats for serializing its objects: one good looking for humans and another more compact for machines that is able to recover the original structures.

For Humans - str(obj)

If you want a nicely formatted, human readable JSON representation of any object in the API – namely, any object from Pyrogram types, raw functions and raw types – you can use use str(obj).

...

with app:
    r = app.get_chat("haskell")

    print(str(r))

Tip

When using print() you don’t actually need to use str() on the object because it is called automatically, we have done that above just to show you how to explicitly convert a Pyrogram object to JSON.

For Machines - repr(obj)

If you want to share or store objects for future references in a more compact way, you can use repr(obj). While still pretty much readable, this format is not intended for humans. The advantage of this format is that once you serialize your object, you can use eval() to get back the original structure; just make sure to import pyrogram, as the process requires the package to be in scope.

import pyrogram

...

with app:
    r = app.get_chat("haskell")

    print(repr(r))
    print(eval(repr(r)) == r)  # True

Note

Type definitions are subject to changes between versions. You should make sure to store and load objects using the same Pyrogram version.