1. import json
  2. def diff_url_params(dataset1_path, dataset2_path):
  3. """
  4. Compares two datasets of URL parameters and returns the differences.
  5. """
  6. try:
  7. with open(dataset1_path, 'r') as f1:
  8. dataset1 = json.load(f1)
  9. with open(dataset2_path, 'r') as f2:
  10. dataset2 = json.load(f2)
  11. except FileNotFoundError as e:
  12. print(f"Error: File not found: {e}")
  13. return None
  14. except json.JSONDecodeError as e:
  15. print(f"Error: Invalid JSON format: {e}")
  16. return None
  17. # Convert datasets to sets of tuples for easier comparison
  18. params1 = set(tuple(p) for p in dataset1)
  19. params2 = set(tuple(p) for p in dataset2)
  20. # Find parameters present in dataset1 but not in dataset2
  21. diff1 = params1 - params2
  22. # Find parameters present in dataset2 but not in dataset1
  23. diff2 = params2 - params1
  24. # Find common parameters
  25. common = params1 & params2
  26. return {
  27. "in_dataset1_only": list(diff1),
  28. "in_dataset2_only": list(diff2),
  29. "common": list(common)
  30. }
  31. if __name__ == '__main__':
  32. # Example usage:
  33. dataset1_path = 'dataset1.json'
  34. dataset2_path = 'dataset2.json'
  35. # Create dummy datasets for testing
  36. dataset1 = [{"param1": "value1", "param2": "value2"}, {"param3": "value3"}]
  37. dataset2 = [{"param1": "value1", "param2": "value2", "param4": "value4"}, {"param3": "value3", "param5": "value5"}]
  38. with open(dataset1_path, 'w') as f:
  39. json.dump(dataset1, f, indent=4)
  40. with open(dataset2_path, 'w') as f:
  41. json.dump(dataset2, f, indent=4)
  42. differences = diff_url_params(dataset1_path, dataset2_path)
  43. if differences:
  44. print(json.dumps(differences, indent=4))

Add your comment