我想帶兩本詞典並打印它們的差異。這個差異應該包括鍵和值的差異。我已經創建了這個小片段來使用unittest
模塊中的內置代碼實現結果。然而,這是一個令人討厭的黑客攻擊,因爲我必須繼承unittest.TestCase
,並提供runtest()
方法才能正常工作。另外,這段代碼會導致應用程序出錯,因爲當出現差異時它將引起AssertError
。我真正想要的是打印差異。打印Python詞典的差異
import unittest
class tmp(unittest.TestCase):
def __init__(self):
# Show full diff of objects (dicts could be HUGE and output truncated)
self.maxDiff = None
def runTest():
pass
_ = tmp()
_.assertDictEqual(d1, d2)
我希望用difflib
模塊,但它看起來只是工作的字符串。有沒有辦法解決這個問題,仍然使用difflib
?
的可能重複http://stackoverflow.com/questions/1165352/fast-comparison-between-two-python-dictionary –
@MarkReed - 這是不同的。這要求*鍵*的差異,這要求*鍵*和*值*的差別(我假設OP需要*鍵值*對)。 「{1:2,2:3}」與「{1:3,2:2}」不同,但實際上並沒有明確說明...... – mgilson
@mgilson - 我沒有提出關閉請求或將其標記爲重複,但如果您查看該頁面上的接受答案,則它包含值比較,而不僅僅是鍵集比較。 –