2010-03-19 24 views
6

VCard'ı bir Python sözlüğüne VObject kullanarak nasıl ayrıştırılacağını anlamaya çalışıyorum. Hepsi buVCard'ı bir Python sözlüğüne nasıl ayrıştırırım?

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

alıyorum:

{'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)} 

nasıl VCard verileri ile sözlüğü doldurabilirsiniz ?

+1

sizin gibi göz geçen dize ne ? –

+0

Standart bir vCard 3.0 – lecodesportif

+1

"vobject.tests.vcardtest" ifadesini geçerseniz aynı sonucu alıyor musunuz? –

cevap

9

Bu davranışa bakmak istemiyorsunuz, vobj ürününe bakmak istiyorsunuz. Davranış, çocukların neye ihtiyaç duyduklarını/beklediklerini ve bu çocukları uygun Python veri yapılarına nasıl çevireceklerini açıklayan bir veri yapısıdır.

vobj nesnesi bir vobject Bileşenidir. Onun içindekiler muhtemelen vobject ContentLines ve Bileşenler bir sözlüğü bağlıyor, böylece

vobject.contents 

size nesnelerin bir sözlük verecektir. Örneğin,

vobj.prettyPrint() 

bireysel çocukları erişmek için yapın::

Eğer çözümlenen şeyin daha insani okunabilir görünüm istiyorsanız, do

vobj.adr 
+0

Proje ölü gibi görünüyor. – BastiBen

+0

Birisi onu almak zorunda kalıyor ve bunu sürdürüyor: http://eventable.github.io/vobject/ – socketwiz