-2

I have a Python string (str), which is "['Fish & Chips', 'Fast Food', 'Restaurants']".

How can I convert this string to a list?

Brad Solomon
  • 34,372
  • 28
  • 129
  • 206
Jachin
  • 1
  • 2

2 Answers2

1

Edit: See snakecharmerb's for a safer alternative to eval().


It seems like you're looking for eval(), which takes a string and evaluates it as a Python expression:

s = "['Fish & Chips', 'Fast Food', 'Restaurants']"

eval(s)
# ['Fish & Chips', 'Fast Food', 'Restaurants']

type(eval(s))
# list
Brad Solomon
  • 34,372
  • 28
  • 129
  • 206
1

While eval works it's safer to use ast.literal_eval if the input data is not trusted:

>>> import ast
>>> s = "['Fish & Chips', 'Fast Food', 'Restaurants']"
>>> ast.literal_eval(s)
['Fish & Chips', 'Fast Food', 'Restaurants']
snakecharmerb
  • 36,887
  • 10
  • 71
  • 115