Вам не нужно указывать тип для строки, если вы хотите вывести значения float
в виде строк, просто сначала вызовите str()
для них:
>>> d = {'release': 'JULY', 'files': {'/path/file': str(1.6), '/path/file2': str(1.9)}}
>>> print yaml.dump(d, default_flow_style=False)
files:
/path/file: '1.6'
/path/file2: '1.9'
release: JULY
Если вы хотите сериализовать / десериализовать пользовательские объекты, вы можете сделать это до некоторой степени, просто определив __repr__
в своем классе:
class Foo:
def __init__(self, x):
self.x = x
def __repr__(self):
return "%s(%r)" % (self.__class__.__name__, self.x)
>>> f = Foo(0)
>>> foo = yaml.dump(f)
>>> yaml.load(foo)
<<< Foo(0)