это мои данные:
data = {'user_a': {u'tmx_animation': [u'import_path-PRJ-1'], u'tmx_cfx': [u'import_path-PRJ-1'], u'tmx_sat_tools': [u'staging'], u'tmx_zone_houdini': [u'import_path-PRJ-1'], u'tmx_zone_katana': [u'import_path-PRJ-1'], u'tmx_zone_health': [u'import_path-PRJ-1'], u'tmx_zone_health': [u'import_path-PRJ-1'], u'tmx_surfacing': [u'import_path-PRJ-1'], u'tmx_motion_render': [u'import_path-PRJ-1'], u'tmx_tools': [u'import_path-PRJ-1'], u'tmx_tx_publish': [u'import_path-PRJ-1']}}
, и я хотел вывести что-то вроде Пользователь имеет проект, и перед его проектом есть ветви, перечисленные перед ним.но я получаю следующий формат, используя взломать apprach.
+----------------+---------------------------+---------------------------+
| User | Project | Branch |
+----------------+---------------------------+---------------------------+
| user_a | | |
| | tmx_tx_publish | |
| | | import_path-PRJ-1 |
| | tmx_sat_tools | |
| | | staging |
| | tmx_animation | |
| | | import_path-PRJ-1 |
| | tmx_motion_render | |
| | | import_path-PRJ-1 |
| | tmx_cfx | |
| | | import_path-PRJ-1 |
| | tmx_tools | |
| | | import_path-PRJ-1 |
| | tmx_surfacing | |
| | | import_path-PRJ-1 |
| | tmx_zone_health | |
| | | import_path-PRJ-1 |
| | tmx_zone_katana | |
| | | import_path-PRJ-1 |
| | tmx_zone_houdini | |
| | | import_path-PRJ-1 |
+----------------+---------------------------+---------------------------+
код, который я написал так:
table = PrettyTable(field_names=["User", "Project", "Branch"], padding_width=5)
for author, projects in data.iteritems():
table.add_row([author, "", ""])
for project, branches in projects.iteritems():
table.add_row(["", project, ""])
for branch in branches:
table.add_row(["", "", branch])
print table.get_string()
форматирование, которое я получаю, теперь то, что я хотел, первоеимя проекта должно быть перед пользователем и первой веткой перед первым проектом.