私はPythonには初めてです。 pythonパッケージを使用してVCARD 2.1
ファイルを解析しようとしています。python VObjectパッケージを使用してVCARDファイルを解析する際にエラーが発生しました
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda3\lib\site-packages\vobject\base.py", line 1129, in readOne
allowQP))
File "C:\Program Files\Anaconda3\lib\site-packages\vobject\base.py", line 1073, in readComponents
vline = textLineToContentLine(line, n)
File "C:\Program Files\Anaconda3\lib\site-packages\vobject\base.py", line 912, in textLineToContentLine
'lineNumber' : n})
File "C:\Program Files\Anaconda3\lib\site-packages\vobject\base.py", line 336, in __init__
self.value = self.value.decode('quoted-printable')
AttributeError: 'str' object has no attribute 'decode'
リンクについて:その後、私は次のエラーを取得しています
import vobject
f=open('sample.vcf','r')
vcf=vobject.readOne(f)
:
BEGIN:VCARD
VERSION:2.1
N;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:I;AM;DUMMY;;
TEL;CELL:123456789
END:VCARD
これらはPythonの私が使用するコマンドです:
私はこのvCardファイルを解析しようとしていますエラーログhttps://paste.fedoraproject.org/391670/46866724/
Pyオブジェクトはdecode
という属性を持たないことを示しています。ここで
は、エラーが発生しているvobjectパッケージのソースコード内のコードスニペットです:
if 'ENCODING' in self.params:
if 'QUOTED-PRINTABLE' in self.params['ENCODING']:
qp = True
self.params['ENCODING'].remove('QUOTED-PRINTABLE')
if 0==len(self.params['ENCODING']):
del self.params['ENCODING']
if 'QUOTED-PRINTABLE' in self.singletonparams:
qp = True
self.singletonparams.remove('QUOTED-PRINTABLE')
if qp:
self.value = self.value.decode('quoted-printable')
stackoverflowの中で同様の問題を読み取ることで、私はvobjectパッケージには、私も試してみました既に復号化string.Soを解読しようとしていることを理解しますvcfファイルをバイナリ文字列に変換し、それをvobject.readOne
への入力として与えます。
binstr = f.read('sample.vcf','r').encode('utf-8')
x=vobject.readOne(binstr)
しかし、動作しません。
VCARD
ファイルを正常に解析するために必要なことはありますか?
誰かが...
EDIT私を助けてください。今、私はこのエラーが、私はこのエラーを克服するための任意の少しハックを行うことができますのpython 3とvobject
の非互換性によるものであることを理解し を?
を使用していますか? –
@MartijnPietersはい – anapneo
あなたは 'ENCODING = QUOTED-PRINTABLE'がどのように処理されるかのバグを発見したと思います。プロジェクトはPython 3で* Unicode strings *を読み込みますが、 'decode'メソッドが動作することを期待しています。私はhttps://github.com/eventable/vobject/issues/20は同じ問題だと思う。 –