如何将 VCard 解析为 Python 字典?

Posted

技术标签:

【中文标题】如何将 VCard 解析为 Python 字典?【英文标题】:How do I parse a VCard to a Python dictionary? 【发布时间】:2011-01-29 11:59:06 【问题描述】:

我正在尝试弄清楚如何使用 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 数据填充字典?

【问题讨论】:

你传递的字符串是什么样的? 如果通过vobject.tests.vcardtest会得到同样的结果吗? 【参考方案1】:

您不想查看行为,您想查看vobj 本身。行为是一种数据结构,描述需要/期望哪些子项,以及如何将这些子项转换为适当的 Python 数据结构。

vobj 对象是一个 vobject 组件。它的内容属性是 vobject ContentLines 和可能的组件的字典,所以

vobject.contents

会给你一个对象字典。

如果您想要更易于阅读的分析内容视图,请执行以下操作:

vobj.prettyPrint()

要访问单个孩子,例如:

vobj.adr

【讨论】:

似乎必须有人把它捡起来并维护它:eventable.github.io/vobject

以上是关于如何将 VCard 解析为 Python 字典?的主要内容,如果未能解决你的问题,请参考以下文章

如何将任意选项字符串解析为python字典

Python:忽略文本文件的注释,该文本文件被解析为字典以写入 CSV [重复]

Vpim::Vcard - 解析 vcard 2.1

将3个列表解析为python中的字典列表

将 HTML 表解析为 Python 列表?

如何使用 python 将字典写入 Dataflow 中的 Bigquery