Есть ли модуль Python, который может использоваться таким же образом в качестве Perl Data::Dumper
модуль?
Править: Извините, я должен был быть более ясным. Я был главным образом после модуля для осмотра данных вместо сохранения.
BTW спасибо за ответы. Это - один потрясающий сайт!
Data :: Dumper имеет два основных применения: сохранение данных и отладка / проверка объектов. Насколько мне известно, нет ничего, что могло бы работать точно так же, как Data :: Dumper.
Я использую pickle для сохранения данных.
Я использую pprint для визуальной проверки моих объектов / отладки.
Думаю, что ближе всего вы найдете модуль pprint .
>>> l = [1, 2, 3, 4]
>>> l.append(l)
>>> d = {1: l, 2: 'this is a string'}
>>> print d
{1: [1, 2, 3, 4, [...]], 2: 'this is a string'}
>>> pprint.pprint(d)
{1: [1, 2, 3, 4, <Recursion on list with id=47898714920216>],
2: 'this is a string'}
Для сериализации там есть много вариантов.
Одним из лучших является JSON, не зависящий от языка стандарт сериализации. Он доступен в версии 2.6 в модуле stdlib json
, а до этого с тем же API в стороннем модуле simplejson
.
Вы не хотите использовать маршал
, который является довольно низкоуровневым. Если вам нужно то, что он дает, вы можете использовать рассол.
Я избегаю использования pickle, формат предназначен только для Python и небезопасен. Десериализация с использованием pickle может выполнять произвольный код.
pickle
, вы хотите использовать его реализацию на языке C. (Сделайте import cPickle как pickle
.) Для отладки вы обычно хотите посмотреть на объект repr
или использовать модуль pprint
.