Как мне разобрать VCard в словарь Python? - PullRequest
6 голосов
/ 19 марта 2010

Я пытаюсь понять, как проанализировать VCard в словаре Python, используя VObject .

vobj=vobject.readOne(string)
print vobj.behavior.knownChildren

Это все, что я получаю:

{'CATEGORIES': (0, None, None), 'ADR': (0, None, None), 'UID': (0, None, None), 'PHOTO': (0, None, None), 'LABEL': (0, None, None), 'VERSION': (1, 1, None), 'FN': (1, 1, None), 'ORG': (0, None, None), 'N': (1, 1, None), 'PRODID': (0, 1, None)}

Как мне заполнить словарь данными моей VCard?

1 Ответ

9 голосов
/ 19 марта 2010

Вы не хотите смотреть на поведение, вы хотите посмотреть на vobj сам. Поведение - это структура данных, описывающая, какие дочерние элементы требуются / ожидаются, и как преобразовать этих дочерних элементов в соответствующие структуры данных Python.

Объект vobj является компонентом vobject. Его атрибут содержимого представляет собой словарь vobject ContentLines и, возможно, Components, поэтому

vobject.contents

даст вам словарь объектов.

Если вы хотите более четкое представление о том, что было проанализировано, выполните:

vobj.prettyPrint()

Чтобы получить доступ к отдельным детям, сделайте, например:

vobj.adr
...