Преобразование строкового представления списка в python в объект списка

У меня есть некоторые данные формата

[[prod149090160, prod146340131, prod160860042, prod147040186, prod147860348, prod157590283, prod153940219, prod162460011, prod160410115, prod157370014], [prod162290002, prod151790213, prod159380278, prod154180602, prod160020244, prod161410007, prod155540059, prod152810207, prod152870263, prod159300061], [prod156900051, prod157590288, prod153540027, prod162940222, prod160330181, prod162680033, prod155370061, prod156970034, prod159310027, prod159410165]] 

Это список списка в строковом формате. Есть ли простой способ преобразовать это в встроенный тип списка python.

Или PyYAML :

 >>> import yaml >>> s = '[[prod149090160, prod146340131, prod160860042, prod147040186, prod147860348, prod157590283, prod153940219, prod162460011, prod160410115, prod157370014], [prod162290002, prod151790213, prod159380278, prod154180602, prod160020244, prod161410007, prod155540059, prod152810207, prod152870263, prod159300061], [prod156900051, prod157590288, prod153540027, prod162940222, prod160330181, prod162680033, prod155370061, prod156970034, prod159310027, prod159410165]]' >>> yaml.load(s) 

Используйте регулярные выражения:

 >>> import re >>> s = '[[prod149090160, prod146340131, prod160860042, prod147040186, prod147860348, prod157590283, prod153940219, prod162460011, prod160410115, prod157370014], [prod162290002, prod151790213, prod159380278, prod154180602, prod160020244, prod161410007, prod155540059, prod152810207, prod152870263, prod159300061], [prod156900051, prod157590288, prod153540027, prod162940222, prod160330181, prod162680033, prod155370061, prod156970034, prod159310027, prod159410165]]' >>> groups = re.findall('\[([^\]]*)\]', s[1:-1]) >>> [re.findall('(prod\d+)', group) for group in groups] [['prod149090160', 'prod146340131', 'prod160860042', 'prod147040186', 'prod147860348', 'prod157590283', 'prod153940219', 'prod162460011', 'prod160410115', 'prod157370014'], ['prod162290002', 'prod151790213', 'prod159380278', 'prod154180602', 'prod160020244', 'prod161410007', 'prod155540059', 'prod152810207', 'prod152870263', 'prod159300061'], ['prod156900051', 'prod157590288', 'prod153540027', 'prod162940222', 'prod160330181', 'prod162680033', 'prod155370061', 'prod156970034', 'prod159310027', 'prod159410165']] 

Об этом говорил Бакуриу:

 data = '''[["prod149090160", "prod146340131", "prod160860042", "prod147040186", "prod147860348", "prod157590283", "prod153940219", "prod162460011", "prod160410115", "prod157370014"], ["prod162290002", "prod151790213", "prod159380278", "prod154180602", "prod160020244", "prod161410007", "prod155540059", "prod152810207", "prod152870263", "prod159300061"], ["prod156900051", "prod157590288", "prod153540027", "prod162940222", "prod160330181", "prod162680033", "prod155370061", "prod156970034", "prod159310027", "prod159410165"]]''' import ast print ast.literal_eval(data) 

Вывод:

 [['prod149090160', 'prod146340131', 'prod160860042', 'prod147040186', 'prod147860348', 'prod157590283', 'prod153940219', 'prod162460011', 'prod160410115', 'prod157370014'], ['prod162290002', 'prod151790213', 'prod159380278', 'prod154180602', 'prod160020244', 'prod161410007', 'prod155540059', 'prod152810207', 'prod152870263', 'prod159300061'], ['prod156900051', 'prod157590288', 'prod153540027', 'prod162940222', 'prod160330181', 'prod162680033', 'prod155370061', 'prod156970034', 'prod159310027', 'prod159410165']] 

Отображаемый формат также будет законной версией JSON-анализа:

 import json print json.loads(data) 
 import json import re print json.loads(re.sub(r'([^\[\],\s+]+)', r'"\1"', i))