1. import re
  2. def decode_cookies(cookie_string):
  3. """Decodes a string of cookies into a dictionary.
  4. Handles multiple cookies separated by semicolons.
  5. """
  6. cookies = {}
  7. if not cookie_string:
  8. return cookies
  9. cookie_list = cookie_string.split(';') # Split into individual cookies
  10. for cookie in cookie_list:
  11. cookie = cookie.strip() # Remove leading/trailing whitespace
  12. if not cookie:
  13. continue # Skip empty cookies
  14. if '=' not in cookie:
  15. continue #skip cookies without value
  16. try:
  17. name, value = cookie.split('=', 1) # Split into name and value
  18. name = name.strip()
  19. value = value.strip()
  20. cookies[name] = value
  21. except ValueError:
  22. # Handle cases where the cookie format is invalid
  23. print(f"Invalid cookie format: {cookie}")
  24. continue
  25. return cookies
  26. if __name__ == '__main__':
  27. # Example usage
  28. cookie_string = "name=john; age=30; city=New York; " \
  29. "email=john.doe@example.com; " \
  30. " " #Added whitespace for testing
  31. decoded_cookies = decode_cookies(cookie_string)
  32. print(decoded_cookies) # Output the decoded cookies as a dictionary
  33. cookie_string2 = ""
  34. decoded_cookies2 = decode_cookies(cookie_string2)
  35. print(decoded_cookies2)
  36. cookie_string3 = "invalid_cookie"
  37. decoded_cookies3 = decode_cookies(cookie_string3)
  38. print(decoded_cookies3)

Add your comment