import re
import pandas as pd
from io import StringIO
srv_data = "A[1]=[1765540,14,2799,4790,'Ts','MSC','2019,8,7,21,00,00',-1,3,2,1,2,1,1,1,2,'20','13','','',82,'','',8,0];"\
"A[2]=[1706041,83,4134,19230,'3DF','rSC','2019,8,7,21,00,00',-1,3,1,2,0,0,0,0,0,'14','8','','',66,'','',0,0];"
csv_data = '\n'.join(re.findall('=\[(.+?)\];', srv_data))
# Вариант без регулярок:
# csv_data = '\n'.join(line.split('=')[1].strip('[]') for line in srv_data.split(';') if line)
df = pd.read_csv(StringIO(csv_data), quotechar="'", header=None)
import pandas as pd
data = "A[1]=[1765540,14,2799,4790,'Ts','MSC','2019,8,7,21,00,00',-1,3,2,1,2,1,1,1,2,'20','13','','',82,'','',8,0];"\
"A[2]=[1706041,83,4134,19230,'3DF','rSC','2019,8,7,21,00,00',-1,3,1,2,0,0,0,0,0,'14','8','','',66,'','',0,0];"
A = {}
exec(data) # Потенциально опасная операция, т.к. в ответе сервера может быть вредоносный код
pd.DataFrame(A.values())
stroke = "A[1]=[1765540,14,2799,4790,'Ts','MSC','2019,8,7,21,00,00',-1,3,2,1,2,1,1,1,2,'20','13','','',82,'','',8,0];A[2]=[1706041,83,4134,19230,'3DF','rSC','2019,8,7,21,00,00',-1,3,1,2,0,0,0,0,0,'14','8','','',66,'','',0,0];"
list_of_arrays = stroke.split(';') # делим записи по ;
for i in list_of_arrays:
# если вдруг пустой элемент списка
if not i:
continue
# делим каждую запись на 2 части, A[1] и все остальное
head, body = i.split('=')
# вторая часть, удаляем символы [], и сразу делим на элементы по ,
body = body.replace('[', '').replace(']', '').split(',')
# проходим по всем элементам тела
for num, val in enumerate(body):
# удаляем символы '
body[num] = val.replace("'", '')
try:
# пробуем привести к числу
body[num] = int(body[num])
except ValueError:
# значит строка
pass
# делим A[1] по символу [, берем вторую часть и удаляем там ]
head_number = head.split('[')[1].replace(']', '')
head = head.split('[')[0]
print(f'head: {head}\nhead_num: {head_number}\nbody:{body}\n')
preg_match_all('!A\[\d+\]=\[(.*?)\]!', $s, $matches);
$data = [];
foreach ($matches[1] as $row) {
$data[] = str_getcsv($row, ",", "'");
}