list_string = "[1,3,4,6]"
I tried list_string[1:-1] but it is giving 1,3,4,6.
I also tried list_string.split(',') but again the brackets will be appended to first and last element i.e '[1' , '3' , '4' , '6]'
I can iterate over all the items and remove brackets from 1st and last element. But what is the best and simple way to do this?
Assuming your string is a simple list/dict/combination of lists and dicts, you can use one of the two packages mentioned below, listed in order of preference.
json>>> import json
>>> json.loads('[1, 2, 3]')
[1, 2, 3]
This is definitely the preferred method if you are parsing raw json strings.
ast.literal_eval>>> import ast
>>> ast.literal_eval('[1, 2, 3]')
[1, 2, 3]
ast.literal_eval will safely evaluate an expression node or a string containing a Python literal or container display. The string or node provided may only consist of the following Python literal structures: strings, bytes, numbers, tuples, lists, dicts, sets, booleans, None, bytes and sets.
Also json.loads is significantly faster than ast.literal_eval. Use this ONLY IF you cannot use the json module first.
yamlIn some cases, you can also use the pyYAML library (you'll need to use PyPi to install it first).
>>> import yaml
>>> yaml.safe_load('[1, 2, 3]')
[1, 2, 3]
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