Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

##Install

pip install jsoncompare

##Explanation

  • Being able to tell whether or not an arbitrarily nested json blob is the same as another blob can hurt your eyes.
  • Additional complexity comes in when your json array's order doesn't matter.
  • For example, you might have a set in Java that you are going to send over the wire as json. It may be represented as a json array but in actuality, you don't care about the order.

Recent Changes

Version Comments
0.1.1 Orginal Version
0.1.2 Adds support for "contains"

##Examples

fromjsoncompareimportjsoncompare# Compare respecting each array's orderjsoncompare.are_same(a, b)
# Compare ignoring each array's orderjsoncompare.are_same(a, b, True)
# Compare ignoring the value of certain keysjsoncompare.are_same(a, b, False, ["datetime", "snacktime"])
# Contains at leastjsoncompare.contains(a, b)
# Getting difference tracesfromjsoncompareimportjsoncomparea= {
"failureReason" : "Invalid request entity",
"fieldValidationErrors" : [
{
"field" : "normal value 1",
"reason" : "may not be smelly"
},
{
"field" : "Catalog.name",
"reason" : "may not be null"
}
]
}
b= {
"failureReason" : "Invalid request entity",
"fieldValidationErrors" : [
{
"field" : "crazy value 2",
"reason" : "may not be null"
},
{
"field" : "Catalog.catalogOwner",
"reason" : "may not be null"
}
]
}
printjsoncompare.are_same(a, b)[1]

results in:

Reason: DifferentvaluesExpected:
"normal value 1"Actual:
"crazy value 2"Reason: Differentvalues (Checkorder)
Expected:
{
"field": "normal value 1", "reason": "may not be smelly"
}
Actual:
{
"field": "crazy value 2", "reason": "may not be null"
}
Reason: DifferentvaluesExpected:
[
{
"field": "normal value 1", "reason": "may not be smelly"
}, {
"field": "Catalog.name", "reason": "may not be null"
}
]
Actual:
[
{
"field": "crazy value 2", "reason": "may not be null"
}, {
"field": "Catalog.catalogOwner", "reason": "may not be null"
}
]

About

A simple python library for comparing json objects for equivalency and helping developers to quickly spot differences between complex json structures.

Resources

Stars

54 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages