簡體   English   中英

在Python中,如何以人類可讀的形式呈現成對的字典?

[英]In Python, how to present pairs of dicts in human readable form?

基本上,我正在尋找一種有效的方法(就編碼工作而言)以人類可讀的形式呈現成對的字典對列表。 在Python 2.7中。

我有兩個OrderedDict列表。 每個字典都是書籍數據(書名,作者等)的記錄。 一個列表包含混亂的數據(錯別字等),另一個列表則具有整潔的數據。 我正在使用difflib.SequenceMatcher查找不整齊的標題與整齊的標題最接近的匹配項。 很好。

它給了我成對字典的列表,即每個最接近的整潔字典。 這些對需要由人類一對一對地進行審查。 所以我想將每對輸出到屏幕上,並排顯示不整潔和整潔的字典,每個都在自己的面板中。 每個字典可以具有變化量的附加字段,例如。 合著者,出版者,日期等

difflib.HtmlDiff並沒有真正做到我想要的。

(通過CSV)導出到Excel是不理想的,因為數據不是平坦的。 (excel中的一行將具有與另一行不同的字段數)。 同樣,對於Google Refine,我認為這更適合表格數據。

叫我偷懶,但是Tkinter或XML / HTML似乎過大了。 這只是一次練習。

我對JSON和YAML一點都不熟悉,也許我應該去看看?

還有更好的建議嗎?

我有這樣的預感,我還沒有找到合適的搜索詞。

我必須輸出的是一個包含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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM