Victor Hooi writes: > I have a function which is meant to return a tuple: > > def get_metrics(server_status_json, metrics_to_extract, line_number): > <SOME_CODE> > return ((timestamp, "serverstatus", values, tags))
That returns a single tuple of four values. The double parentheses are redundant. > I also have: > > def create_point(timestamp, metric_name, values, tags): That can take the four values in the tuple returned by get_metrics, ok. > I am calling get_metric in a for loop like so: > > for metric_data in get_metrics(server_status_json, mmapv1_metrics, > line_number): > json_points.append(create_point(*metric_data)) That sets metric_data to each of the four values in the one tuple in turn. You seem to want just: json_points.append(create_point(*get_metrics(...))) > I was hoping to use tuple unpacking to pass metric_data straight from > get_metrics through to create_point. That should be cool. It's the loop that's a little bit too much. (If you want get_metrics to return a singleton tuple containing the four-tuple, you need an extra comma in there: (x) is just x; (x,) is a tuple containing x. -- https://mail.python.org/mailman/listinfo/python-list