how to compare two json file line by line using python?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon May 27 01:33:11 EDT 2013


On Sun, 26 May 2013 21:32:40 -0700, Avnesh Shakya wrote:

> But I want to compare line by line and value by value. but i found that
> json data is unordered data, so how can i compare them without sorting
> it. please give me some idea about it. I am new for it. I want to check
> every value line by line.

Why do you care about checking every value line by line? As you say 
yourself, JSON data is unordered, so "line by line" is the wrong way to 
compare it.


The right way is to decode the JSON data, and then compare whether it 
gives you the result you expect:

a = json.load("file-a")
b = json.load("file-b")
if a == b:
    print("file-a and file-b contain the same JSON data")

If what you care about is the *data* stored in the JSON file, this is the 
correct way to check it.

On the other hand, if you don't care about the data, but you want to 
detect changes to whitespace, blank lines, or other changes that make no 
difference to the JSON data, then there is no need to care that this is 
JSON data. Just treat it as text, and use the difflib library.

http://docs.python.org/2/library/difflib.html


-- 
Steven



More information about the Python-list mailing list