У меня есть следующий список словарей (с вложенными списками внутри):
compatibility = [
{'region': 'NTSC-U',
'stats': [
{'os': 'Windows', 'state': 'Playable'},
{'os': 'Linux', 'state': 'Playable'},
{'os': 'Mac', 'state': 'N/A'}
]},
{'region': 'PAL',
'stats': [
{'os': 'Windows', 'state': 'Playable'},
{'os': 'Linux', 'state': 'N/A'},
{'os': 'Mac', 'state': 'N/A'}
]},
{'region': 'NTSC-J',
'stats': [
{'os': 'Windows', 'state': 'N/A'},
{'os': 'Linux', 'state': 'N/A'},
{'os': 'Mac', 'state': 'N/A'}
]}
]
Я пытаюсь использовать pytablewriter
и pandas
для создания таблицы уценки для этих данных, но я могу Кажется, мне не приходится разбираться с уникальными значениями и порядком столбцов для фрейма данных.
Вот моя функция с примером того, как будет выглядеть этот вывод:
def generate_table():
compatibility = find_compatibility()
writer = MarkdownTableWriter()
writer.from_dataframe(
pd.DataFrame({'NTSC-U': ['Playable', 'Playable', 'N/A'], 'PAL': ['Playable', 'N/A', 'N/A'],
'NTSC-J': ['N/A', 'N/A', 'N/A']}, index=['Windows', 'Linux', 'Mac']),
add_index_column=True,
)
writer.write_table()
Как бы Я go об этом? Я дошел до того, что подумал о наборах для получения уникальных имен ОС, но, похоже, это не работает со списком dicts с вложенными списками. (И поскольку структура данных иногда содержит только одну область, это должно быть динамическое c).
Любая помощь приветствуется!