问题标签 [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.
python - 使用 python VObject 包解析 VCARD 文件时出错
我是 python 新手。我正在尝试使用python 包解析VCARD 2.1
文件。
我正在尝试解析此 VCARD 文件: vobject 0.9.2
这些是我使用的python命令:
然后我收到以下错误:
错误日志链接https://paste.fedoraproject.org/391670/46866724/
Python 显示str
object 没有属性decode
。
这是发生错误的 vobject 包源代码中的代码片段:
通过阅读 stackoverflow 中的类似问题,我了解到 vobject 包正在尝试解码已经解码的字符串。所以我什至尝试将 vcf 文件转换为二进制字符串并将其作为输入提供给vobject.readOne
.
但它不工作。
我必须做什么才能成功解析VCARD
文件?
请有人帮我...
编辑:现在我知道这个错误是由于vobject
与 python 3 不兼容。我可以做一些小技巧来克服这个错误吗?
python - 使用 vobject 在 django-python 中解析 vcf 文件
我正在使用 vobject 模块来解析从 MS Outlook 导出的 vcard。它的内容如下:
解析时出现以下错误:
/importcontactsfromvcard/ 处的 ParseError
第 12 行:解析行失败:new york, new york 928293
我正在使用以下代码:
当我从文件中省略一些内容时,它们工作得非常好,它看起来如下:
我是 python 新手,第一次使用 vcards。我不知道如何忽略上述错误来解析 Vcard。
python - 如何解析具有多个联系人的电子名片
我正在尝试通过 vcard 导入联系人,我已成功解析它以获得:
我使用 vobject 来读取 vcard:
我正在使用cmatskas javascript 插件上传和读取文件:
如何解析具有多个联系信息的 vcard,即具有多个开始和结束标签的卡片?
python-2.7 - 不会从 .vcf 文件中读取多个 vcard,vobject.readOne(f) 仅适用于第一个 vcard
上面的代码不起作用,但如果我们删除两个重复的语句之一,它会起作用。我想一张一张地阅读电子名片。有没有办法用 vobject.readOne(f) 做到这一点?如何从文件中读取 vcard n?
我使用的 vcf 文件取自 google 联系人(导出为 vcard 格式)。这是我在测试中使用的文件内容,只有两个 vcard:
然后可以使用 Vcard 读数进行比较以避免重复,如另一个问题所示:
要删除 vcard 联系人重复项,比较 .vcf 文件中的两个 vcard 是否相等不适用于简单 == vobject 比较
python-2.7 - 要删除 vcard 联系人重复项,比较 .vcf 文件中的两个 vcard 是否相等不适用于简单 == vobject 比较
上面的代码应该返回 True 但它不会因为 vcards 被认为是不同的,即使它们是相同的。最终目标之一是找到一种从 vcard 文件中删除重复项的方法。加分点:有没有办法使比较兼容使用一种快速方法来统一 Python 中的列表,例如:
删除重复项?(例如,以某种方式将电子名片转换为字符串......)。在上面的代码中 len(set(ablist)) 返回 2 而不是 1 如预期的那样......
相反,如果不是比较整个 vcard,而是比较它的一个组件,如下所示:
然后我们确实看到了预期的行为并收到 True 作为响应...
这是测试中使用的文件内容(只有两个相同的 vcard):
python-2.7 - vcf 文件中用于 vcard 重复删除的 python 代码适用于 vobject,但仅适用于“精确重复”
上面的代码有效并创建了一个新文件,其中没有完全相同的重复项(具有相同单数化的重复项)。我知道代码有一些效率问题:它是 n 平方,当它可能是 n*log n 时;我们只能将每个 vacard 序列化一次;for 等的使用效率低下。在这里,我想提供一个简短的代码来说明我不知道如何解决的一个问题。
我不知道如何优雅地解决这个问题:如果卡片中的某些字段被打乱,它不会检测到它们是否相等。有没有办法使用 vobject、re 或其他方法检测此类重复项?
测试中使用的文件内容,有四个相同的电子名片(电话乱码乱码 - 不是电子邮件乱码的想法),是这个:
上面的代码不会检测到这四个都是一样的,因为最后一个的电话号码被打乱了。
作为奖励积分,如果有人有更快的算法,如果可以共享它会很棒。上述一个需要几天时间才能处理一个 30.000 Vcard 文件......
python - 使用 python vobject 获取 vcard 中属性的所有值
如果我像这样使用 vobject 导入 vcard:
如果电子卡提供多个电话号码或电子邮件,我如何获得所有电话号码或电子邮件?
我只发现:
...但这仅返回每个中的第一个。
当我深入研究代码时,似乎实体是作为类创建的。因此,vcard 的属性“TEL”被创建为“tel”。如果我有手机和工作电话号码怎么办?
我完全被困住了:-)
python - 如何使用 VObject 操作 VCF 联系人?
假设我已经构建了一个名为vobj
(例如,构建 via vobject.readComponents(vcfStr)
)的 VObject,并希望向其添加一个新的键:值对:
所有额外的印刷品try:except
都是因为我无法让它工作!这是产生的输出:
我有三个具体问题:
VObject 使用
object.attribute
“点”表示法,我发现处理任意键名的唯一方法是使用eval()
. 必须有一个更蟒蛇的方式?第一条语句的评估有效,并按预期
stmnt1
更改 ,为. 但因语法错误而失败,我不知道为什么。vobj
BDAY
stmnt2
由于VObject README中有两种选择,我也尝试过
stmnt2 = "vobj.%s.value = ['%s']" % (k,v)
,将值列在列表中:是否使用字符串原子或列表是否重要?
python - 序列化日历事件时出错
我正在尝试在 python 2.7 上使用 python caldav 库(版本 0.5.0)修改日历。我正在使用以下代码片段向重复事件添加 exdate
尽管 vobject 库声称支持 datetime 对象,但最后一行失败并显示:
有任何想法吗?
python - 通过彩信创建和发送 vCard 文件
我正在尝试使用 Twilio 的 API 和vobject发送 vCard 文件(允许您在移动设备上保存联系人) 。
这是我的代码:
当我的设备收到消息时,它看起来像这样:
<VCARD| [<EMAIL{'TYPE': ['Internet']}jeffrey@osafoundation.org>, <FN{}Jeffrey Harris>, <N{} Jeffrey Harris >]>
为什么会这样?