2010-03-19 8 views
6

Estoy tratando de averiguar cómo analizar una VCard en un diccionario de Python usando VObject.¿Cómo analizo una VCard en un diccionario de Python?

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

Esto es todo lo que consigo:

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

¿Cómo puedo rellenar el diccionario con mis datos de vCard?

+1

lo que hace la cadena que pasa mirada como ? –

+0

Es una vCard 3.0 estándar – lecodesportif

+1

¿obtiene el mismo resultado si pasa 'vobject.tests.vcardtest'? –

Respuesta

9

Usted no quiere mirar el comportamiento, usted quiere mirar vobj sí mismo. El comportamiento es una estructura de datos que describe qué se requiere/espera de los niños, y cómo traducir a esos niños en estructuras de datos de Python apropiadas.

El objeto vobj es un Componente vobject. Su contenido atributo es un diccionario de ContentLines vObject y del componente, por lo

vobject.contents 

le dará un diccionario de objetos.

Si quieres una vista legible más humano de lo que se ha analizado, hacer:

vobj.prettyPrint() 

Para acceder a cada niño, hacer, por ejemplo:

vobj.adr 
+0

El proyecto parece estar muerto. – BastiBen

+0

Alguien parece tener que recogerlo y mantenerlo: http://eventable.github.io/vobject/ – socketwiz

Cuestiones relacionadas