在Python中,如何以人类可读的形式呈现成对的dict?
基本上,我正在寻找一种有效的方式(就编码工作而言)以人类可读的形式呈现一组dict。在Python2.7中 我有两个列表,分别是在Python中,如何以人类可读的形式呈现成对的dict?,python,python-2.7,dictionary,human-readable,Python,Python 2.7,Dictionary,Human Readable,基本上,我正在寻找一种有效的方式(就编码工作而言)以人类可读的形式呈现一组dict。在Python2.7中 我有两个列表,分别是OrderedDict。每一条记录都是一本书的数据记录(书名、作者等)。一个列表有凌乱的数据(打字错误等),另一个列表有整齐的数据。我正在使用difflib.SequenceMatcher查找与不整洁的标题最接近的匹配项。这很有效 它给了我一个目录对的列表,即每一个不整洁的目录和它最接近的匹配整洁的目录。这些配对需要由人类一对一对地审查。 所以我想把每一对输出到屏幕上,
OrderedDict
。每一条记录都是一本书的数据记录(书名、作者等)。一个列表有凌乱的数据(打字错误等),另一个列表有整齐的数据。我正在使用difflib.SequenceMatcher
查找与不整洁的标题最接近的匹配项。这很有效
它给了我一个目录对的列表,即每一个不整洁的目录和它最接近的匹配整洁的目录。这些配对需要由人类一对一对地审查。
所以我想把每一对输出到屏幕上,在各自的面板上并排显示不整洁和整洁的dict。每个dict可能有不同数量的附加字段,例如合著者、出版商、日期等
difflib.HtmlDiff
并不是我想要的
导出到Excel(通过CSV)并不理想,因为数据不是平面的。(excel中的一行与另一行的字段数不同)。同样,对于GoogleRefine,我认为它更倾向于表格数据
可以说我懒惰,但Tkinter或XML/HTML似乎有些过分。这只是一次性的锻炼
我对JSON和YAML都不熟悉,也许我应该看看那里
还有更好的建议吗
我有种预感,我还没有找到合适的搜索词 我必须输出的是一个3项列表,每个3项列表包含匹配的编号和两个有序的dict,标题为正确的和最佳匹配的标题,都有其他信息,如作者、shelfmark等 我选择Yaml中的输出,因为它被宣传为人类可读和人类可编辑。对于这一点,我还没有用户推荐,但是创建输出文件非常简单(如果您花时间阅读文档的话)
YAML对我来说,如果唯一的限制是它应该是人类可读的,为什么不使用一个包含3列(键名、无序值、整洁值)的文本文件呢?当然,您还需要为每个diff添加另一行“header”数据,但这也不需要太多编码工作。输入和输出是什么?@user2931409 input是dict对的列表。输出请参见编辑的文本。@isedev感谢您的更正
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))