Skip to content Skip to sidebar Skip to footer

Python List String To List

I have a string: s= '[7, 9, 41, [32, 67]]' and I need to convert that string into a list: l= [7, 9, 41, [32, 67]] the problem is, when I use list(s) I get this: ['[', '7', ',', '

Solution 1:

You can do exactly what you asked for by using ast.literal_eval():

>>>ast.literal_eval("[7, 9, 41, [32, 67]]")
[7, 9, 41, [32, 67]]

However, you probably want to use a sane serialisation format like JSON in the first place, instead of relying on the string representation of Python objects. (As a side note, the string you have might even be JSON, since the JSON representation of this particular object would look identical to the Python string representation. Since you did not mention JSON, I'm assuming this is not what you used to get this string.)

Solution 2:

Use the ast module, it has a handy .literal_eval() function:

importastl= ast.literal_eval(s)

On the python prompt:

>>>import ast>>>s= "[7, 9, 41, [32, 67]]">>>ast.literal_eval(s)
[7, 9, 41, [32, 67]]

Solution 3:

You want to use ast.literal_eval:

import ast
s= "[7, 9, 41, [32, 67]]"print ast.literal_eval(s)
# [7, 9, 41, [32, 67]]

Solution 4:

It is another answer, But I don't suggest you.Because exec is dangerous.

>>>s= "[7, 9, 41, [32, 67]]">>>try:...exec'l = ' + s...  l...except Exception as e:...  e
[7, 9, 41, [32, 67]]

Solution 5:

why not use eval()?

>>>s = "[7, 9, 41, [32, 67]]">>>eval(s)
[7, 9, 41, [32, 67]]

Post a Comment for "Python List String To List"