Vérifier si les Deux Massifs de Python Dictionnaires sont Équivalentes
J'ai un énorme python dictionnaire avec plus de 90 000 entrées. Pour des raisons que je ne vais pas entrer dans, j'ai besoin de stocker ce dictionnaire dans ma base de données et puis à un moment plus tard recompiler le dictionnaire de la base de données entrées.
Je suis en train de mettre en place une procédure pour vérifier que mon stockage et la recompilation a été fidèle et que mon nouveau dictionnaire est équivalent à l'ancien. Quelle est la meilleure méthode pour tester cette.
Il existe des différences mineures et je veux comprendre ce qu'ils sont.
Si vos valeurs ont tous équivalence définie, juste dict1 == dict2 devrait fonctionner
Je suppose qu'il pourrait y avoir quelques problèmes mineurs, et si il y a des petits problèmes, je veux savoir ce qu'ils sont c'est à dire quelles sont les différences.
Avez-vous besoin de faire un straight-up
Voici un joli très classe qui fait exactement ce que vous voulez - stackoverflow.com/questions/1165352/...
new == old
...Je suppose qu'il pourrait y avoir quelques problèmes mineurs, et si il y a des petits problèmes, je veux savoir ce qu'ils sont c'est à dire quelles sont les différences.
Avez-vous besoin de faire un straight-up
==
vérifier, ou seriez-vous intéressé à connaître les éléments qui sont différents (par exemple, pour le débogage)?Voici un joli très classe qui fait exactement ce que vous voulez - stackoverflow.com/questions/1165352/...
OriginalL'auteur Spencer | 2011-09-30
Vous devez vous connecter pour publier un commentaire.
Le plus évident est l'approche des cours:
Qui devrait être la plus rapide possible, puisqu'elle dépend de Python-même pour faire la comparaison.
Mise à JOUR: Il semble que vous n'êtes pas après "l'égalité", mais quelque chose de plus faible. Je pense que vous avez besoin de modifier votre question pour le rendre clair ce que vous considérez comme "équivalent".
si vous souhaitez mettre en place une procédure qui me permet de savoir en quoi consistent ces différences" qui, je pense, a été clair dans votre question, pourquoi la marque de cette réponse est-elle acceptée?
et si vous avez des objets imbriqués, pas de primitives
OriginalL'auteur unwind
Vous pourriez commencer avec quelque chose comme ça et de le personnaliser en fonction de vos besoins
OriginalL'auteur Facundo Casco
Modifier
Ne pas voter pour cette réponse. Aller à Une comparaison rapide entre les deux Python dictionnaire et ajouter un upvote. C'est un très complète de la solution.
iteritems
. J'aime cette approche mieux.OriginalL'auteur Steven Rumbalski