Skip to content Skip to sidebar Skip to footer

Convert String To Nested Structures Like List

I have a string like str_sample = '[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]' I am currently using: exec('str2list_sample = '+ str_sample) Is there any much m

Solution 1:

Firstly don't name your variable str as it shadows the built-in.

To solve your problem you can use ast.literal_eval

>>>a = "[[1, 2], [2.0, 0.3], ['a', 'b']]">>>import ast>>>ast.literal_eval(a)
[[1, 2], [2.0, 0.3], ['a', 'b']]

To address your latest edit

>>> str_sample = "[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]">>> ast.literal_eval(str_sample)
[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]

Solution 2:

Use eval, but this is not a good practice

eval("[[1, 2], [2.0, 0.3], ['a', 'b']]")
[[1, 2], [2.0, 0.3], ['a', 'b']]

Post a Comment for "Convert String To Nested Structures Like List"