You can indeed convert incoming objects to dicts and pass them to suds. But Spyne already offers both ways object<==>dict conversion facitilies.
To convert to dict you can use spyne.util.dictdoc
.
e.g.
from spyne.model.complex import ComplexModel
from spyne.model.primitive import Integer
class B(ComplexModel):
c = Integer
class A(ComplexModel):
a = Integer
b = B
from spyne.util.dictdoc import get_object_as_dict
print get_object_as_dict(A(a=4, b=B(c=5)), A)
# prints {'a': 4, 'b': {'c': 5}}
get_object_as_dict(A(a=4, b=B(c=5)), A, ignore_wrappers=False)
# prints {'A': {'a': 4, 'b': {'B': {'c': 5}}}}
I hope it helps.