#!/usr/bin/python from collections import namedtuple import psutil import json def serialize(stats, partitions): data = {type(stat).__name__: stat._asdict() for stat in stats} data['partitions'] = {p[0]: p[1]._asdict() for p in partitions} return json.dumps(data) def get_stats(): stats = [ psutil.cpu_times(), psutil.virtual_memory(), psutil.net_io_counters(), ] partitions = [] for partition in psutil.disk_partitions(): partitions.append((partition.mountpoint, psutil.disk_usage(partition.mountpoint))) return stats, partitions def post_stats(): stats, partitions = get_stats() json_data = serialize(stats, partitions) return json_data print(post_stats())