hmm, you have found an interesting behavior.
You can read the font data container just like any other container:
import c4d
from c4d import gui
def main():
bc = op[c4d.PRIM_TEXT_FONT].GetFont()
print (bc, len(bc))
for index, value in bc:
print ("Index: %i, Value: %s" % (index, str(value)))
if __name__=='__main__':
main()
resulting in
<c4d.BaseContainer object at 0x000001E012D5B800> 7
Index: 500, Value: Segoe UI
Index: 502, Value: 700
Index: 503, Value: 0
Index: 2, Value: Fett
Index: 509, Value: Segoe UI Fett
Index: 508, Value: SegoeUI-Bold
Index: 501, Value: 11
HOWEVER!
If the MoText has just been created, this BaseContainer is empty. I get the values above only after changing something. It's not the Segue UI font either because you can set it back to the initial values, and the container will be filled.
I don't know how to tell the MoText object to actually fill the container, and I do not see any hint in the documentation how to enforce it.