Как бы я сделал вывод в таблицу? - PullRequest
0 голосов
/ 19 октября 2019

Я бы хотел, чтобы вывод был табличным. Без фигурных скобок и двойных кавычек. Могу ли я получить помощь с этим? Я использую Python 3.7.5

students = [ 
  { "grade": 5,
    "firstname": "Brendon", 
    "lastname": "Urie", 
    "gender": "M" 
    },
  { 
    "grade": 7,
    "firstname": "Freddy",
    "lastname": "Mercury",
    "gender": "M" 
  },
  { 
    "grade": 12,
    "firstname": "Tessa",
    "lastname": "Thompson"
  }
]

output("list", students, None)

Ответы [ 3 ]

1 голос
/ 19 октября 2019

Вы можете использовать панд, чтобы распечатать его как информационный кадр.

import pandas as pd

students = [ 
    { 
        "grade":5,
        "firstname":"Brendon",
        "lastname":"Urie",
        "gender":"M"
    },
    { 
        "grade":7,
        "firstname":"Freddy",
        "lastname":"Mercury",
        "gender":"M"
    },
    { 
        "grade":12,
        "firstname":"Tessa",
        "lastname":"Thompson"
    }
]

df = pd.DataFrame(students)
df

Результат:

    firstname   gender  grade   lastname
0   Brendon M   5   Urie
1   Freddy  M   7   Mercury
2   Tessa   NaN 12  Thompson
0 голосов
/ 19 октября 2019

Вы можете красиво печатать словарь в виде таблиц, используя tabulate

from tabulate import tabulate

def dict_to_list(lst):
  """ Converts students to list of the form 
[[5, 'Brendon', 'Urie', 'M'], [7, 'Freddy', 'Mercury', 'M'], ...] """
  return [[v for v in d.values()] for d in lst]

students = [ 
  { "grade": 5,
    "firstname": "Brendon", 
    "lastname": "Urie", 
    "gender": "M" 
    },
  { 
    "grade": 7,
    "firstname": "Freddy",
    "lastname": "Mercury",
    "gender": "M" 
  },
  { 
    "grade": 12,
    "firstname": "Tessa",
    "lastname": "Thompson"
  }
]

# tabulate takes as input: list of lists, and header
# list of list = dict_to_list(students)
# header = students[0].keys()
print (tabulate(dict_to_list(students), students[0].keys()))

Вывод (симпатичный формат с выровненными столбцами)

 grade  firstname    lastname    gender
-------  -----------  ----------  --------
      5  Brendon      Urie        M
      7  Freddy       Mercury     M
     12  Tessa        Thompson
0 голосов
/ 19 октября 2019

Если вы имеете в виду таблицы для терминала terminaltables это то, что вам нужно:

https://robpol86.github.io/terminaltables/

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