Skip to content

Instantly share code, notes, and snippets.

@aasmpro
Created February 13, 2019 13:16
Show Gist options
  • Save aasmpro/1cff0b4be03677238d9fac320dfe56d7 to your computer and use it in GitHub Desktop.
Save aasmpro/1cff0b4be03677238d9fac320dfe56d7 to your computer and use it in GitHub Desktop.
python simple prettify
def prettify(data, indent=' ', indent_num=0):
result = ''
if isinstance(data, list) or isinstance(data, tuple):
for i in data:
if isinstance(i, list) or isinstance(i, tuple) or isinstance(i, dict):
result += "{}".format(prettify(i, indent, indent_num))
else:
result += indent * indent_num + "{}\n".format(str(i))
elif isinstance(data, dict):
for k, v in data.items():
if isinstance(v, list) or isinstance(v, tuple) or isinstance(v, dict):
result += indent * indent_num + "{}:\n{}".format(k, prettify(v, indent, indent_num + 1))
else:
result += indent * indent_num + "{}: {}\n".format(k, str(v))
return result
@aasmpro
Copy link
Author

aasmpro commented Feb 13, 2019

input

data = {
        'name': 'my name',
        'age': 123.44,
        'object': Sample(),
        'data_list0': [1, 2],
        'data_dict0': {
            'name': 'my name',
            'age': 123.44,
            'object': Sample(),
            'data_list1': [1, 2],
        },
        'data_dict_in_list0': [
            {
                'name': 'my name',
                'data_list2': [1, 2, 3, 4],
                'ff': 'my name',
            },
            {
                'name': 'my name',
                'data_list2': [
                    {
                        'data_list3': [1, 2],
                        'my_dict': {
                            'name': 123,
                            'ff': 33
                        }
                    },
                    {
                        'data_list3': [1, 2],
                    },
                ],
            },
        ],
        'data_dict2': {
            'name': 'my name',
            'age': 123.44,
            'object': Sample(),
            'data_list1': [1, 2],
        },
    }

# indent using 2 spaces
print(prettify(data=b, indent='  '))

output

name: my name
age: 123.44
object: SampleObject
data_list0:
  1
  2
data_dict0:
  name: my name
  age: 123.44
  object: SampleObject
  data_list1:
    1
    2
data_dict_in_list0:
  name: my name
  data_list2:
    1
    2
    3
    4
  ff: my name
  name: my name
  data_list2:
    data_list3:
      1
      2
    my_dict:
      name: 123
      ff: 33
    data_list3:
      1
      2
data_dict2:
  name: my name
  age: 123.44
  object: SampleObject
  data_list1:
    1
    2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment