如何将VCard解析为Python字典?

6 投票
1 回答
8297 浏览
提问于 2025-04-15 20:36

我正在尝试使用VObject把一个VCard解析成Python字典。

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

你不需要关注行为本身,而是要关注vobj这个对象。行为是一个数据结构,它描述了需要或期望的子项,以及如何将这些子项转换成合适的Python数据结构。

vobj对象是一个vobject组件。它的内容属性是一个字典,里面包含了vobject内容行和可能的组件,所以

vobject.contents

会给你一个对象的字典。

如果你想要更容易理解的解析结果,可以这样做:

vobj.prettyPrint()

要访问单个子项,比如说:

vobj.adr

撰写回答