0

基本上,我正在寻找一种有效的方法(就编码工作而言)以人类可读的形式呈现成对的字典列表。在 Python 2.7 中。

我有两个OrderedDict. 每个 dict 都是书籍数据(标题、作者等)的记录。一个列表有杂乱的数据(错别字等),另一个有整洁的数据。我difflib.SequenceMatcher用来寻找最接近不整洁标题的匹配,以整洁的标题。这很好用。

它给了我一个字典对的列表,即每个不整洁的字典与其最接近匹配的整洁字典。这些对需要由人类逐对审查。所以我想将每一对输出到屏幕上,并排显示不整洁和整洁的字典,每个都在它自己的面板中。每个 dict 可能有不同数量的附加字段,例如。合著者、出版商、日期等

difflib.HtmlDiff并没有真正做我想要的。

导出到 Excel(通过 CSV)并不理想,因为数据并不平坦。(excel中的一行将具有与另一行不同的字段数)。同样对于 Google Refine,我认为这更面向表格数据。

叫我懒惰,但 Tkinter 或 XML/HTML 似乎有点矫枉过正。这只是一次过的练习。

我对 JSON 和 YAML 一点都不熟悉,也许我应该看看那里?

有更好的建议吗?

我有这样的预感,我还没有找到合适的搜索词。

4

1 回答 1

1

我必须输出的是一个包含 3 项列表的列表,每个 3 项列表包含匹配的编号和两个带有正确标题和最佳匹配标题的有序字典,都带有附加信息,例如作者、货架标记等。

我在 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 回答