如何解析多个联系人的vcard

时间:2016-07-27 12:07:31

标签: python django vobject

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

BEGIN:VCARD
VERSION:3.0
FN:Harsimer Kaur
N:Kaur;Harsimer;;;
X-EVOLUTION-FILE-AS:Kaur\, Harsimer
EMAIL;TYPE=OTHER:HKaur5@gmail.com
UID:pas-id-5743EEB900000000
REV:2016-05-24T06:03:37Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Kaur Ramanpreet
N:Ramanpreet;Kaur;;;
X-EVOLUTION-FILE-AS:Ramanpreet\, Kaur
EMAIL;TYPE=OTHER:KaurRamanpreet@gmail.com
UID:pas-id-5742DAB000000000
REV:2016-05-23T10:25:52Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Gunjan Sharma
N:Sharma;Gunjan;;;
X-EVOLUTION-FILE-AS:Sharma\, Gunjan
EMAIL;TYPE=OTHER:sharmagunjan2557@gmail.com
UID:pas-id-57236BA000000000
REV:2016-04-29T14:11:44Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Pawanjeet Kaur-PHP
N:Kaur-PHP;Pawanjeet;;;
X-EVOLUTION-FILE-AS:Kaur-PHP\, Pawanjeet
EMAIL;TYPE=OTHER:kaurpawanjeet@gmail.com
UID:pas-id-5717547800000000
REV:2016-04-20T10:05:44Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Bansal Nancy
N:Nancy;Bansal;;;
X-EVOLUTION-FILE-AS:Nancy\, Bansal
EMAIL;TYPE=OTHER:BansalNancy@gmail.com
UID:pas-id-57025A5300000000
REV:2016-04-04T12:13:07Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Vivek Rana
N:Rana;Vivek;;;
X-EVOLUTION-FILE-AS:Rana\, Vivek
EMAIL;TYPE=OTHER:RanaVivek2567@gmail.com
UID:pas-id-56CAB5EF00000000
REV:2016-02-22T07:17:03Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Kulvir Kaur
N:Kaur;Kulvir;;;
X-EVOLUTION-FILE-AS:Kaur\, Kulvir
EMAIL;TYPE=OTHER:KKaur5@gmail.com
UID:pas-id-56728A8C00000000
REV:2015-12-17T10:12:28Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Seema PHP
N:PHP;Seema;;;
X-EVOLUTION-FILE-AS:PHP\, Seema
EMAIL;TYPE=OTHER:ssharma4@gmail.com
UID:pas-id-566ACFEC00000000
REV:2015-12-11T13:30:20Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Seasia IT Team
N:Team;Seasia;IT;;
X-EVOLUTION-FILE-AS:Team\, Seasia
EMAIL;TYPE=OTHER:seasiaitteam@gmail.com
UID:pas-id-5668F04700000005
REV:2015-12-10T03:23:51Z(10)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Saumya PHP
N:PHP;Saumya;;;
X-EVOLUTION-FILE-AS:PHP\, Saumya
EMAIL;TYPE=OTHER:BhatnagarSaumya2556@gmail.com
UID:pas-id-5668F03100000004
REV:2015-12-10T03:23:29Z(8)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Gaurav PHP
N:PHP;Gaurav;;;
X-EVOLUTION-FILE-AS:PHP\, Gaurav
EMAIL;TYPE=OTHER:kumargaurav@gmail.com
UID:pas-id-5668F01F00000003
REV:2015-12-10T03:23:11Z(6)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Rishav Sharma PHP
N:PHP;Rishav;Sharma;;
X-EVOLUTION-FILE-AS:PHP\, Rishav
EMAIL;TYPE=OTHER:sharmarishav@gmail.com
UID:pas-id-5668F00B00000002
REV:2015-12-10T03:22:51Z(4)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Jatinder Bawa
N:Bawa;Jatinder;;;
X-EVOLUTION-FILE-AS:Bawa\, Jatinder
EMAIL;TYPE=OTHER:JBawa@gmail.com
UID:pas-id-5668EFEC00000001
REV:2015-12-10T03:22:20Z(2)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Gurpreet Singh-PM
N:Singh-PM;Gurpreet;;;
X-EVOLUTION-FILE-AS:Singh-PM\, Gurpreet
EMAIL;TYPE=OTHER:GSinghPHP@gmail.com
UID:pas-id-5668EFCE00000000
REV:2015-12-10T03:21:50Z(0)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Narinder Singh
N:Singh;Narinder;;;
X-EVOLUTION-FILE-AS:Singh\, Narinder
EMAIL;TYPE=OTHER:nsingh3@gmail.com
UID:pas-id-565E7BBA00000002
REV:2015-12-02T05:03:54Z(4)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Kuldeep Raj
N:Raj;Kuldeep;;;
X-EVOLUTION-FILE-AS:Raj\, Kuldeep
EMAIL;TYPE=OTHER:KRaj@gmail.com
UID:pas-id-565E7BA700000001
REV:2015-12-02T05:03:35Z(2)
END:VCARD

BEGIN:VCARD
VERSION:3.0
FN:Devi Lal Verma
N:Verma;Devi;Lal;;
X-EVOLUTION-FILE-AS:Verma\, Devi
EMAIL;TYPE=OTHER:dlverma@gmail.com
UID:pas-id-565E7B9D00000000
REV:2015-12-02T05:03:25Z(0)
END:VCARD

我用vobject读取vcard:

 vcards = vobject.readOne(in_data)

我使用cmatskas javascript插件上传和阅读文件:

如何解析带有多个联系信息的vcard,即带有多个Begin和End标签的卡?

1 个答案:

答案 0 :(得分:1)

使用vobject,您可以使用readComponents函数获取vcard文件的所有组件。例如,如果我在path存储了一个包含多个联系人的vcard文件,那么我可以返回所有这些联系人:

import vobject
import codecs

obj = vobject.readComponents(codecs.open(path, encoding='utf-8').read())
contacts = [contact for contact in obj]

readComponents返回一个您可以迭代并检索所有联系人的生成器。

相关问题