2

我正在尝试解析 vCard 对象,但在获取不同类型的电话或地址(即家庭或工作)时遇到问题。我只能得到第一个实例,而不能得到第二个电话实例。

TEL;TYPE=work,voice;VALUE=uri:tel:+11115551
TEL;TYPE=home,voice;VALUE=uri:tel:+14045551

contact = vobject.readOne(s, allowQP=True)
print contact.tel.type_param
print contact.tel

这两个都有效,但他们只给了我第一个电话号码。我想做类似下面的事情,但这当然会给我一个错误。

print contact.tel.type_param.home
print contact.tel.work.value

按类型访问 vCard 对象的最佳方法是什么?

4

1 回答 1

2

Vobject 没有很好地记录。从方法 docstring :“”“返回一个孩子的值(第一个,默认情况下),或无。”“”

所以要修复它,我必须指定一个除零以外的子编号。

 print contact.getChildValue('tel',default = None, childNumber = 0)
 print contact.getChildValue('tel',default = None, childNumber = 1)
于 2015-09-04T22:50:41.973 回答