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