問題タブ [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
を使用してファイルを解析しようとしてvobject 0.9.2
います。
この VCARD ファイルを解析しようとしています:
これらは私が使用したpythonコマンドです:
次に、次のエラーが表示されます。
エラーログへのリンクhttps://paste.fedoraproject.org/391670/46866724/
Python は、str
オブジェクトに属性がないことを示していますdecode
。
エラーが発生している vobject パッケージ ソース コードのコード スニペットを次に示します。
stackoverflow で同様の問題を読むことで、vobject パッケージが既にデコードされた文字列をデコードしようとしていることを理解していますvobject.readOne
。
しかし、それは機能していません。
VCARD
ファイルを正常に解析するにはどうすればよいですか?
誰か助けてください...
編集: これで、このエラーは python 3 との非互換性が原因であることがわかりましたvobject
。このエラーを克服するためにちょっとしたハックを行うことはできますか?
python - vobjectを使用してdjango-pythonでvcfファイルを解析する
vobject モジュールを使用して、MS Outlook からエクスポートした vcard を解析しています。以下のような内容となっています。
解析中にエラーが発生しました:
/importcontactsfromvcard/ での解析エラー
12 行目: 行の解析に失敗しました: new york, new york 928293
以下のコードを使用しています:
ファイルから一部のコンテンツを省略した場合、それらは完全に正常に機能し、以下のようになります。
私はPythonが初めてで、初めてvcardsに取り組んでいます。上記のエラーを無視して Vcard を解析する方法がわかりません。
python - 複数の連絡先で vcard を解析する方法
vcard を介して連絡先をインポートしようとしていますが、正常に解析して取得しました:
vobject を使用して vcard を読み取りました。
ファイルのアップロードと読み取りにcmatskas JavaScript プラグインを使用しています。
複数の連絡先情報、つまり複数の Begin タグと End タグを持つカードを含む vcard を解析するにはどうすればよいですか?
python-2.7 - .vcf ファイルから複数の vcard を読み取らず、vobject.readOne(f) は最初の vcard のみを機能させます
上記のコードは機能しませんが、繰り返される 2 つのステートメントのいずれかを削除すると機能します。vcard を 1 つずつ読みたいと思います。vobject.readOne(f) でこれを行う方法はありますか? ファイルから vcard n を読み取るにはどうすればよいですか?
私が使用している vcf ファイルは、Google の連絡先から取得したものです (vcard 形式でエクスポート)。2 つの vcard のみを使用したテストで使用したファイルの内容は次のとおりです。
次に、別の質問に示すように、Vcard の読み取り値を使用して比較を実行し、重複を避けることができます。
vcard 連絡先の重複を削除するには、.vcf ファイルで 2 つの vcard が等しいかどうかを単純な == vobject 比較では比較できません。
python-2.7 - vcf ファイル内の vcard 重複除去用の python コードは、vobject で動作しますが、「正確な重複」に対してのみ動作します
上記のコードは機能し、完全な重複がない (同一の特異点を持つ重複) 新しいファイルを作成します。コードにはいくつかの効率の問題があることを知っています。各 vacard を 1 回だけシリアライズできます。for などの非効率的な使用。ここでは、解決方法がわからない問題の 1 つを説明する短いコードを提供したいと思います。
エレガントに解決する方法がわからない問題は次のとおりです。カードのフィールドの一部がスクランブルされている場合、それらが等しいことを検出しません。vobject、re、または別のアプローチでそのような重複を検出する方法はありますか?
テストで使用されたファイルの内容は、4 つの同等の vcard (電話が混乱したコードであり、電子メールが混乱した考えではありません) で、次のとおりです。
上記のコードは、最後の 1 つの電話番号がスクランブルされているため、4 つがすべて同じであることを検出しません。
おまけとして、誰かがより高速なアルゴリズムを持っている場合は、それを共有できれば素晴らしいことです. 上記のものは、30.000 Vcardファイルで数日かかります...
python - Python vobject を使用して vcard の属性のすべての値を取得する
次のように vobject を使用して vcard をインポートすると:
vcard によって複数の電話番号または電子メールが提供されている場合、すべての電話番号または電子メールを取得するにはどうすればよいですか?
私が見つけたのは:
...しかし、これはそれぞれの最初のものだけを返します。
コードに飛び込んでみると、エンティティはクラスとして作成されているようです。したがって、vcard の属性「TEL」は「tel」として作成されます。携帯電話と勤務先の電話番号を持っている場合はどうなりますか?
私は完全に立ち往生しています:-)