Форматирование списка API с циклом for в таблице
Я хочу вывести список, полученный от API, в таблицу, чтобы он выглядел лучше. Данные из API возвращаются с циклом for. Моя проблема сейчас в том, что я не знаю, как получить, чтобы заголовок не зацикливался каждый раз.
например:
И я хочу один заголовок, а остальные под заголовком
Мне удалось с некоторыми инструкциями отсюда, что данные будут отображаться с "Табуляцией" вообще в таблице. Тем не менее, "заголовок" будет вставлен при каждом запуске снова.
head = ["Datum", "Username", "License Server", "Feature Name", "Max. Usage", "Hours Used", "Max Used", "Hours Borrowed", "Max Borrowed"]
for item in (data['data'])
if item['un'] == tecNo:
print(tabulate([[item['fud'], item['un'], str(item['lsn']), str(item['fns']), str(item['musage']), str(item['hu']), str(item['mu']), str(item['hb']), str(item['mb'])]],headers=head, tablefmt="grid"))```
[1]: https://stackru.com/images/c10dc73e0c4f13804a331e688ff3431b3e909d55.png
[2]: https://stackru.com/images/ec785bc0554006b9b4e9502833efbc37702559b9.png
1 ответ
Решение
Вам нужно поместить элементы в 2d массив, а затем вызвать tabulate
в конце.
table = []
for item in (data['data'])
if item['un'] == tecNo:
table.append([
item['fud'],
item['un'],
str(item['lsn']),
str(item['fns']),
str(item['musage']),
str(item['hu']),
str(item['mu']),
str(item['hb']),
str(item['mb'])
])
tabulate(table, headers=head)