This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
get_lenlist = lambda input_data: dict([(key,max([len(str(key))]+[len(str(i[key])) for i in input_data])) for key in input_data[0].keys()]) | |
get_rowformat = lambda length_data: " | ".join('%%-%ss' % max_length for key, max_length in length_data.iteritems()) | |
get_divider = lambda length_data: "-|-".join("-"*max_length for key, max_length in length_data.iteritems()) | |
get_header = lambda length_data: get_rowformat(length_data) % tuple(length_data.keys()) | |
records = [ | |
{ 'name':'Billy Bob', 'Hobby': 'Guns'}, | |
{ 'name':'Asshat','Hobby':'Being an ass'}, | |
{ 'name':'Dick Head','Hobby':'Being a dick'} | |
] | |
length_list = get_lenlist(records) | |
print get_header(length_list) | |
print get_divider(length_list) | |
for record in records: | |
print get_rowformat(length_list) % tuple(record[key] for key, max_length in length_list.iteritems()) | |
print get_divider(length_list) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment