I have a string like this "['first', 'sec', 'third']"
What would be the best way to convert this to a list of strings ie. ['first', 'sec', 'third']
I'd use literal_eval()
, it's safe:
Safely evaluate an expression node or a string containing a Python expression. The string or node provided may only consist of the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.
This can be used for safely evaluating strings containing Python expressions from untrusted sources without the need to parse the values oneself.
>>> import ast
>>> ast.literal_eval("['first', 'sec', 'third']")
['first', 'sec', 'third']
It doesn't eval anything except literal expressions:
>>> ast.literal_eval('"hello".upper()')
...
ValueError: malformed string
>>> ast.literal_eval('"hello"+" world"')
...
ValueError: malformed string
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With