0

基本的に、人間が読める形式で Dicts のペアのリストを表示する効率的な方法 (コーディング作業の観点から) を探しています。Python 2.7 で。

の 2 つのリストがありOrderedDictます。各 dict は書籍データ (タイトル、著者など) の記録です。1 つのリストには乱雑なデータ (タイプミスなど) があり、もう 1 つのリストにはきちんとしたデータがあります。私はdifflib.SequenceMatcher、整然としたものに、整頓されていないタイトルの最も近い一致を見つけるために使用しています。それはうまくいきます。

それは、辞書のペアのリスト、つまり、それぞれの乱雑な辞書とそれに最も近い適切な辞書を提供します。これらのペアは、人間がペアごとに確認する必要があります。したがって、各ペアを画面に出力し、乱雑な辞書ときちんとした辞書を並べて、それぞれ独自のパネルに表示したいと思います。各dictには、さまざまな量の追加フィールドがあります。共著者、発行者、日付など

difflib.HtmlDiff私が望むことを本当にしません。

Excel へのエクスポート (CSV 経由) は理想的ではありません。データがフラットではないためです。(Excel の 1 つの行には、別の行とは異なる数のフィールドがあります)。Google Refine も同様に、表形式のデータをより重視していると思います。

私を怠け者と呼んでください。しかし、Tkinter や XML/HTML はやり過ぎのようです。一回限りの練習です。

私は JSON も YAML もまったくよく知らないのですが、そこを見てみるべきでしょうか?

より良い提案はありますか?

適切な検索語がまだ見つかっていないという予感があります。

4

1 に答える 1

1

私が出力しなければならなかったのは、3 項目リストのリストでした。各 3 項目リストには、一致する番号と、タイトルから修正するタイトルと最も一致するタイトルを含む 2 つの順序付けられた辞書が含まれており、どちらにも著者、棚マークなどの追加情報が含まれています。

人間が読み取り可能で人間が編集できると宣伝されているため、Yaml で出力を行いました。これについては、まだユーザーの証言はありませんが、出力ファイルの作成は非常に簡単でした ( PyYaml のドキュメントを読む時間があれば)。

import yaml
.
.

with codecs.open('Lit_titles_match.yml', 'w', 'utf-8-sig') as m:
    # match is a list of lists of one float and two dicts.   
    m.write(yaml.dump_all(match, default_flow_style=False))
于 2014-05-07T18:03:25.897 に答える