如果我使用vobject导入vcard:
with open(some_file_containing_a_vcard,
"r" , encoding="utf-8") as fd:
vcard_content = vobject.readOne(fd.read(),
ignoreUnreadable=True)
如果vcard提供多个电话号码或电子邮件,我如何获得所有电话号码或电子邮件?
我只找到了:
vcard_content.tel.value
vcard_content.email.value
...但这仅返回每个中的第一个。
当我潜入代码时,似乎实体被创建为clases。所以vcard的属性" TEL"被创建为" tel"。如果我有一个小区和一个工作电话号码怎么办?
我完全陷入困境: - )
答案 0 :(得分:1)
您可以使用x_train, x_validation, y_train, y_validation = model_selection.train_test_split(x,y,test_size=self.validation_size,random_state=self.seed,stratify=y
属性实际实现此目的,该属性是字典。因此,您可以使用类似
contents
将打印所有TEL属性的列表(即使只有一个或没有)。
答案 1 :(得分:0)
我使用以下代码片段解决了这个问题:
stream = io.open(some_file_containing_a_vcard, "r", encoding="utf-8")
vcf = vobject.readComponents(stream, ignoreUnreadable=True)
for child in vcard.getChildren():
name = child.name.lower()
value = child.value
attribs = child.params.get("TYPE", [])
filtered_type = [x.lower() for x in attribs if x.lower() in (
"work", "home", "cell", "fax"
)]
if len(filtered_type) == 0:
filtered_type = ["unspec"]
# Do something with it... i.e. adding to a dict()
stream.close()
这对我有用: - )