File size: 1,138 Bytes
42da440 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import ast
def parse_string_list(input_data):
if isinstance(input_data, list):
# If input is already a list, validate its contents
if all(isinstance(item, str) for item in input_data):
return input_data
else:
print("Error: All items in the list must be strings")
return None
elif isinstance(input_data, str):
try:
# Use ast.literal_eval to safely evaluate the string
parsed_data = ast.literal_eval(input_data)
# Check if the result is a list
if not isinstance(parsed_data, list):
raise ValueError("Input is not a valid list")
# Check if all elements are strings
if not all(isinstance(item, str) for item in parsed_data):
raise ValueError("All items in the list must be strings")
return parsed_data
except (ValueError, SyntaxError) as e:
# Handle parsing errors
print(f"Error parsing input: {e}")
return None
else:
print("Error: Input must be a string or a list")
return None
|