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

Grant Edwards invalid at invalid.invalid
Tue May 28 12:00:14 EDT 2013


On 2013-05-27, Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:
> 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.

There's no such thing as "lines" in JSON anyway. Outside of string
literals, all whitespace is equivalent, so replacing all newlines with
space characters results in equivalent blobs of JSON -- but one is a
single line, and the other is multiple lines.

> 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.

Yup.

-- 
Grant Edwards               grant.b.edwards        Yow! Are we laid back yet?
                                  at               
                              gmail.com            



More information about the Python-list mailing list