import json
def diff_url_params(dataset1_path, dataset2_path):
"""
Compares two datasets of URL parameters and returns the differences.
"""
try:
with open(dataset1_path, 'r') as f1:
dataset1 = json.load(f1)
with open(dataset2_path, 'r') as f2:
dataset2 = json.load(f2)
except FileNotFoundError as e:
print(f"Error: File not found: {e}")
return None
except json.JSONDecodeError as e:
print(f"Error: Invalid JSON format: {e}")
return None
# Convert datasets to sets of tuples for easier comparison
params1 = set(tuple(p) for p in dataset1)
params2 = set(tuple(p) for p in dataset2)
# Find parameters present in dataset1 but not in dataset2
diff1 = params1 - params2
# Find parameters present in dataset2 but not in dataset1
diff2 = params2 - params1
# Find common parameters
common = params1 & params2
return {
"in_dataset1_only": list(diff1),
"in_dataset2_only": list(diff2),
"common": list(common)
}
if __name__ == '__main__':
# Example usage:
dataset1_path = 'dataset1.json'
dataset2_path = 'dataset2.json'
# Create dummy datasets for testing
dataset1 = [{"param1": "value1", "param2": "value2"}, {"param3": "value3"}]
dataset2 = [{"param1": "value1", "param2": "value2", "param4": "value4"}, {"param3": "value3", "param5": "value5"}]
with open(dataset1_path, 'w') as f:
json.dump(dataset1, f, indent=4)
with open(dataset2_path, 'w') as f:
json.dump(dataset2, f, indent=4)
differences = diff_url_params(dataset1_path, dataset2_path)
if differences:
print(json.dumps(differences, indent=4))
Add your comment