![](/img/trans.png)
[英]How to convert the content of a .dat file to a human readable form using 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.