Как я могу разобрать таблицу типов уценки и найти определенное значение? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть таблица по проблеме git, в которой есть данные о рабочих за неделю.

Таблица написана с уценкой и имеет вид:

start | конец | главная | sub
- | - | - | -
1/30 | 2/6 | Алиса | Боб
2/6 | 2/13 | Чарль ie | Дэйв

Я могу получить текущую дату и получить этот текст уценки из остальных API.

То, что я получаю от остальных API, это строка, которая разделяет строки с \ r \ n.

И что я хочу сделать больше, это выяснить, еженедельные рабочие, но я застрял на этом.

Есть ли хорошая идея?

Спасибо:)

1 Ответ

1 голос
/ 27 апреля 2020

Для дальнейших приложений, я думаю, вы должны сформировать таблицу, ставшую записями с каждой записью в виде словаря, ключом которого является имя столбца.

Сначала получите заголовки таблицы:

tableStr = 'start | end | main | sub'\
    + '\r\n' + '-- | -- | -- | --'\
    + '\r\n' + '1/30 | 2/6 | Alice | Bob'\
    + '\r\n' + '2/6 | 2/13 | Charlie | Dave'

headersStr = tableStr[:tableStr.find('\r\n')]
headers = [h.strip() for h in headersStr.split('|')]

затем проанализируйте таблицу с записями по:

records = []
for rowStr in tableStr.split('\r\n')[2:]:
    row = [entry.strip() for entry in rowStr.split('|')]
    record = {headers[i]:row[i] for i in range(len(headers))}
    records.append(record)

print(records)

, который вы получите в консоли:

[{'start': '1/30', 'end': '2/6', 'main': 'Alice', 'sub': 'Bob'}, {'start': '2/6', 'end': '2/13', 'main': 'Charlie', 'sub': 'Dave'}]

Я не уверен, как вы определите weekly worker, но вы могли бы сделать что-то с этим. Например:

reverseSortedBySub = sorted(records, key=lambda x: x['sub'], reverse=True)
print(reverseSortedBySub)

тогда вы получите:

[{'start': '2/6', 'end': '2/13', 'main': 'Charlie', 'sub': 'Dave'}, {'start': '1/30', 'end': '2/6', 'main': 'Alice', 'sub': 'Bob'}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...