for loop over function that returns a tuple?
harvesting at makes.address.invalid
Wed Sep 2 14:24:28 CEST 2015
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):
> return ((timestamp, "serverstatus", values, tags))
That returns a single tuple of four values. The double parentheses are
> 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):
That sets metric_data to each of the four values in the one tuple in
turn. You seem to want just:
> 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
More information about the Python-list