I have been trying to read a series of vCards and their attributes using the vobject python module. The vCards are not made by me and when I download some, I find some errors in iterating through some conflicting lines. Some of the sections of the .vcfs I am using have minor dependencies that seem to cause errors when iterating through the files contents. Some of these errors are caused by occurrences such as a space, or a parameter taking up multiple lines. Below are examples of vCards that cause issues, as well as the code. In these examples I am trying to get the name, phone number, title, and email for organization purposes.
Example .vcf:
BEGIN:VCARD
VERSION:2.1
N;CHARSET=ISO-8859-1:Example;Name;X.
FN;CHARSET=ISO-8859-1:Name Example X
ORG;CHARSET=ISO-8859-1:Example Org
TITLE;CHARSET=ISO-8859-1:Example Title
TEL;WORK;VOICE:123456789
TEL;WORK;FAX:123456789
ADR;CHARSET=ISO-8859-1;WORK:;;ABCD Tower, Tree Road Street, N.W.;Washington;DC;20006-1037;US
EMAIL;PREF;INTERNET:[email protected]
END:VCARD
BEGIN:VCARD
VERSION:2.1
N;CHARSET=ISO-8859-1:Example;Name;
FN;CHARSET=ISO-8859-1:Name Example
ORG;CHARSET=ISO-8859-1: Example org
TITLE;CHARSET=ISO-8859-1:Example title
TEL;WORK;VOICE:123456789
TEL;WORK;FAX:123456789
ADR;CHARSET=ISO-8859-1;WORK:;;1234 road, NW;Washington;
DC;20036;US
EMAIL;PREF; INTERNET:[email protected]
END:VCARD
Example code:
import vobject
filepath = "a string representing a filepath to a vCard stored as a .vcf"
with open(filepath) as source_file:
for vcard in vobject.readComponents(source_file):
print(vcard.fn.value)
print(vcard.title.value)
print(vcard.tel.value)
print(vcard.email.value)
Any sort of way to format a pre-existing vCard file to guarantee it will work with thhe vobject module or any other tool would be a great help as from what I can tell my issue is with reading a formatted vCard. I am very new to using this module, and working with .vcf files in python so any help is greatly appreciated!
It works
if you remove the illegal line break and space
However a package maintainer seems to be missing
https://github.com/eventable/vobject/issues