问题标签 [vobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1901 浏览

python - 使用 python VObject 包解析 VCARD 文件时出错

我是 python 新手。我正在尝试使用python 包解析VCARD 2.1文件。 我正在尝试解析此 VCARD 文件: vobject 0.9.2

这些是我使用的python命令:

然后我收到以下错误:

错误日志链接https://paste.fedoraproject.org/391670/46866724/

Python 显示strobject 没有属性decode

这是发生错误的 vobject 包源代码中的代码片段:

通过阅读 stackoverflow 中的类似问题,我了解到 vobject 包正在尝试解码已经解码的字符串。所以我什至尝试将 vcf 文件转换为二进制字符串并将其作为输入提供给vobject.readOne.

但它不工作。

我必须做什么才能成功解析VCARD文件?
请有人帮我...

编辑:现在我知道这个错误是由于vobject与 python 3 不兼容。我可以做一些小技巧来克服这个错误吗?

0 投票
1 回答
415 浏览

python - 使用 vobject 在 django-python 中解析 vcf 文件

我正在使用 vobject 模块来解析从 MS Outlook 导出的 vcard。它的内容如下:

解析时出现以下错误:

/importcontactsfromvcard/ 处的 ParseError

第 12 行:解析行失败:new york, new york 928293

我正在使用以下代码:

当我从文件中省略一些内容时,它们工作得非常好,它看起来如下:

我是 python 新手,第一次使用 vcards。我不知道如何忽略上述错误来解析 Vcard。

0 投票
1 回答
2128 浏览

python - 如何解析具有多个联系人的电子名片

我正在尝试通过 vcard 导入联系人,我已成功解析它以获得:

我使用 vobject 来读取 vcard:

我正在使用cmatskas javascript 插件上传和读取文件:

如何解析具有多个联系信息的 vcard,即具有多个开始和结束标签的卡片?

0 投票
1 回答
1724 浏览

python-2.7 - 不会从 .vcf 文件中读取多个 vcard,vobject.readOne(f) 仅适用于第一个 vcard

上面的代码不起作用,但如果我们删除两个重复的语句之一,它会起作用。我想一张一张地阅读电子名片。有没有办法用 vobject.readOne(f) 做到这一点?如何从文件中读取 vcard n?

我使用的 vcf 文件取自 google 联系人(导出为 vcard 格式)。这是我在测试中使用的文件内容,只有两个 vcard:

然后可以使用 Vcard 读数进行比较以避免重复,如另一个问题所示:

要删除 vcard 联系人重复项,比较 .vcf 文件中的两个 vcard 是否相等不适用于简单 == vobject 比较

0 投票
2 回答
1186 浏览

python-2.7 - 要删除 vcard 联系人重复项,比较 .vcf 文件中的两个 vcard 是否相等不适用于简单 == vobject 比较

上面的代码应该返回 True 但它不会因为 vcards 被认为是不同的,即使它们是相同的。最终目标之一是找到一种从 vcard 文件中删除重复项的方法。加分点:有没有办法使比较兼容使用一种快速方法来统一 Python 中的列表,例如:

删除重复项?(例如,以某种方式将电子名片转换为字符串......)。在上面的代码中 len(set(ablist)) 返回 2 而不是 1 如预期的那样......

相反,如果不是比较整个 vcard,而是比较它的一个组件,如下所示:

然后我们确实看到了预期的行为并收到 True 作为响应...

这是测试中使用的文件内容(只有两个相同的 vcard):

0 投票
3 回答
689 浏览

python-2.7 - vcf 文件中用于 vcard 重复删除的 python 代码适用于 vobject,但仅适用于“精确重复”

上面的代码有效并创建了一个新文件,其中没有完全相同的重复项(具有相同单数化的重复项)。我知道代码有一些效率问题:它是 n 平方,当它可能是 n*log n 时;我们只能将每个 vacard 序列化一次;for 等的使用效率低下。在这里,我想提供一个简短的代码来说明我不知道如何解决的一个问题。

我不知道如何优雅地解决这个问题:如果卡片中的某些字段被打乱,它不会检测到它们是否相等。有没有办法使用 vobject、re 或其他方法检测此类重复项?

测试中使用的文件内容,有四个相同的电子名片(电话乱码乱码 - 不是电子邮件乱码的想法),是这个:

上面的代码不会检测到这四个都是一样的,因为最后一个的电话号码被打乱了。

作为奖励积分,如果有人有更快的算法,如果可以共享它会很棒。上述一个需要几天时间才能处理一个 30.000 Vcard 文件......

0 投票
3 回答
926 浏览

python - 使用 python vobject 获取 vcard 中属性的所有值

如果我像这样使用 vobject 导入 vcard:

如果电子卡提供多个电话号码或电子邮件,我如何获得所有电话号码或电子邮件?

我只发现:

...但这仅返回每个中的第一个。

当我深入研究代码时,似乎实体是作为类创建的。因此,vcard 的属性“TEL”被创建为“tel”。如果我有手机和工作电话号码怎么办?

我完全被困住了:-)

0 投票
0 回答
171 浏览

python - 如何使用 VObject 操作 VCF 联系人?

假设我已经构建了一个名为vobj(例如,构建 via vobject.readComponents(vcfStr))的 VObject,并希望向其添加一个新的键:值对:

所有额外的印刷品try:except都是因为我无法让它工作!这是产生的输出:

我有三个具体问题:

  1. VObject 使用object.attribute“点”表示法,我发现处理任意键名的唯一方法是使用eval(). 必须有一个更蟒蛇的方式?

  2. 第一条语句的评估有效,并按预期stmnt1更改 ,为. 但因语法错误而失败,我不知道为什么。vobjBDAYstmnt2

  3. 由于VObject README中有两种选择,我也尝试过stmnt2 = "vobj.%s.value = ['%s']" % (k,v),将值列在列表中:

    是否使用字符串原子或列表是否重要?

0 投票
0 回答
130 浏览

python - 序列化日历事件时出错

我正在尝试在 python 2.7 上使用 python caldav 库(版本 0.5.0)修改日历。我正在使用以下代码片段向重复事件添加 exdate

尽管 vobject 库声称支持 datetime 对象,但最后一行失败并显示:

有任何想法吗?

0 投票
1 回答
829 浏览

python - 通过彩信创建和发送 vCard 文件

我正在尝试使用 Twilio 的 API 和vobject发送 vCard 文件(允许您在移动设备上保存联系人) 。

这是我的代码:

当我的设备收到消息时,它看起来像这样:

<VCARD| [<EMAIL{'TYPE': ['Internet']}jeffrey@osafoundation.org>, <FN{}Jeffrey Harris>, <N{} Jeffrey  Harris >]>

为什么会这样?