Преобразование строкового представления списка в 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.
- питон; изменение списка внутри функции
- Автоматическое нулевое заполнение массива
- Как сгруппировать список кортежей на основе строк, которые они содержат?
- Объединение последовательных чисел в кортежи в ряд
- Как преобразовать кортеж кортежей в список в одной строке (pythonic)?
Или 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))
- почему mystring.split ("") .append ("foo") ничего не возвращает?
- Как я могу повторить этот массив из двух пар с помощью Numpy?
- Есть ли способ перебрать подсектор списка в Python
- Вычисление минимальной длины среди списков внутри списка
- Назначение списка с помощью
- Есть ли более питонический способ заполнения этого списка?
- Вложение python: передача списка из C в функцию python
- В Python, какой самый быстрый алгоритм для удаления дубликатов из списка, чтобы все элементы были уникальными * при сохранении порядка *?
- В чем разница между этими двумя реализациями?
- Python: как объединить два списка списков вместе, избегая повторений?
- Python: лучший способ разделить список объектов по полю?