Skip to main content

Hi,

 

 

I have two json and I would like to test if they are equal without knowing their attribute name? How can I automatize it using either a transformer or python caller?

_result= l{"attributes":{"OBJECTID":objectid, "ATTRIBUTE1": A1 ,  "ATTRIBUTE2": A2 ,  "ATTRIBUTE3": A3,"ATTRIBUTE4": A4, ... ,"ATTRIBUTEN": AN}}]

_result if the generic syntax of my json document.

 

 

Thanks

@takashi

Hi @arthy, assuming the feature has two JSON documents as its attributes called "_result1" and "_result2", a PythonCaller with this script determines if the two JSON documents are equal on both property names and values, and then saves the result ("yes" or "no") into a new attribute named "_same", for example.

# PythonCaller Script Example mUpdated]
import json
def processFeature(feature):
    array1 = json.loads(feature.getAttribute('_result1'))
    array2 = json.loads(feature.getAttribute('_result2'))
    feature.setAttribute('_same', 'yes' if (array1 == array2) else 'no')

Hi @arthy, assuming the feature has two JSON documents as its attributes called "_result1" and "_result2", a PythonCaller with this script determines if the two JSON documents are equal on both property names and values, and then saves the result ("yes" or "no") into a new attribute named "_same", for example.

# PythonCaller Script Example mUpdated]
import json
def processFeature(feature):
    array1 = json.loads(feature.getAttribute('_result1'))
    array2 = json.loads(feature.getAttribute('_result2'))
    feature.setAttribute('_same', 'yes' if (array1 == array2) else 'no')
updated the script example.

 

 


Hi @arthy, assuming the feature has two JSON documents as its attributes called "_result1" and "_result2", a PythonCaller with this script determines if the two JSON documents are equal on both property names and values, and then saves the result ("yes" or "no") into a new attribute named "_same", for example.

# PythonCaller Script Example mUpdated]
import json
def processFeature(feature):
    array1 = json.loads(feature.getAttribute('_result1'))
    array2 = json.loads(feature.getAttribute('_result2'))
    feature.setAttribute('_same', 'yes' if (array1 == array2) else 'no')
@takashi,

 

Thank you very much.

 

I really appreciated.

 

It worked.

 


Reply