проблема с синтаксическим анализом вывода из CLI Command с использованием пакета panda - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно проанализировать следующий вывод команды CLI:

                                                                                                  DS US DS  US  
VC:VS   MAC-ADDRESS    IP-ADDRESS                     SW-VERSION         STATUS          CLOCK    RF RF CHN CHN 
------- -------------- ------------------------------ ------------------ --------------- -------- -- -- --- --- 
1:0     0020.a324.7043 3000:200:200:142::50           1.9.0.0-8+auto4    online          unlocked 1  2  158 12  

Итак, я использовал функцию print_csv в пакете panda следующим образом.

scr_columns = ["VC:VS", "MAC-ADDRESS", "IP-ADDRESS", "VERSION", "STATUS", "CLOCK", "DS RF", "US RF", "DS CHN", "US CHN"]
dataframe = pd.read_csv(
    StringIO(output),
    index_col=0,
    sep='/s+',
    skiprows=3,
    skip_blank_lines=True,
    skipfooter=0,
    engine="python",
    names=scr_columns)

dataframe.index.name = "VC:VS"
return dataframe

когда вывод - это вывод, который я написал выше.
Теперь проблема в том, что я получаю следующий фрейм данных:

       MAC-ADDRESS               IP-ADDRESS  ... DS CHN US CHN
VC:VS                                        ...              
1:0    0020.a324.7043  3000:200:200:142::50  ...    158     12

и когда я его печатаю с помощью следующей команды:

    logger.debug('Received :\n'
                 '{}'.format(tabulate(dataframe, headers=scr_columns.columns)))

Я получаю следующий вывод таблицы:

Received:
     MAC-ADDRESS             IP-ADDRESS                    VERSION          STATUS    CLOCK       DS RF    US RF    DS CHN    US CHN
---  --------------  --------------------  ---------------  --------  --------  -------  -------  --------  --------
1:0  0020.a324.7043  3000:200:200:142::50  1.9.0.0-8+auto4  online    unlocked        1        2       158        12

, в которой отсутствует строка первого столбца VC:VS, а не все остальные строки, и я предполагаю, что это происходит, потому что индексированные строки находятся в двух строках, а не в одной строке в выводе.

Можно ли как-нибудь решить эту проблему, не написав свой собственный парсер ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...