Ответы пользователя по тегу Парсинг
  • Как распарсить массив возвращаемый сервером в виде обычной строки?

    @bbkmzzzz
    без без регулярок и pandas
    Текст структурирован, так что вот:
    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')

    есть допущения.
    1. Всегда имеется индекс у заголовка: A[1]
    2. Числа всегда целые. С плавающей точкой приведутся к целому
    Ответ написан
    4 комментария
  • Есть мысли, как спарсить расписание по чётной и по нечётной неделе?

    @bbkmzzzz
    Элементы принадлежат трем классам
    sch_two - 2 неделя
    sch_one - 1 неделя
    sch_all - все
    Например:
    <td class="sch_para  sch_two" onmouseover="glow('on',this);" onmouseout="glow('off',this);">

    вторая неделя:
    "sch_para sch_two"
    Ответ написан
    Комментировать