Сериализация объекта Python в XML (Apple.plist)
Вопрос
Мне нужно читать и сериализовать объекты из XML и в него, в частности, в формат Apple .plist.Какой самый разумный способ сделать это в Python?Есть ли готовые решения?
Решение
Проверить plistlib.
Другие советы
Предполагая, что вы используете Mac, вы можете использовать PyObjC.
Вот пример чтения из списка, из Использование Python для системного администрирования, слайд 27.
from Cocoa import NSDictionary
myfile = "/Library/Preferences/com.apple.SoftwareUpdate.plist"
mydict = NSDictionary.dictionaryWithContentsOfFile_(myfile)
print mydict["LastSuccessfulDate"]
# returns: 2009-08-11 08:38:01 -0600
И пример записи в plist (который я написал):
#!/usr/bin/env python
from Cocoa import NSDictionary, NSString
myfile = "~/test.plist"
myfile = NSString.stringByExpandingTildeInPath(myfile)
mydict = {"Nice Number" : 47, "Universal Sum" : 42}
mydict["Vector"] = (10, 20, 30)
mydict["Complex"] = [47, "i^2"]
mydict["Truth"] = True
NSDictionary.dictionaryWithDictionary_(mydict).writeToFile_atomically_(myfile, True)
Когда я затем бегу defaults read ~/test
в bash я получаю:
{
Complex = (
47,
"i^2"
);
"Nice Number" = 47;
Truth = 1;
"Universal Sum" = 42;
Vector = (
10,
20,
30
);
}
И файл выглядит очень красиво, если открыть его в Property List Editor.app.
Не связан с StackOverflow