for loop over function that returns a tuple?
harvesting at makes.address.invalid
Wed Sep 2 17:50:02 CEST 2015
Steven D'Aprano writes:
> On Wed, 2 Sep 2015 09:49 pm, Victor Hooi wrote:
>> 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))
>> I am calling get_metric in a for loop like so:
>> for metric_data in get_metrics(server_status_json, mmapv1_metrics,
>> I was hoping to use tuple unpacking to pass metric_data straight from
>> get_metrics through to create_point.
>> However, in this case, metric_data only contains timestamp.
> I don't understand this.
for metric_data in (timestamp, "serverstatus", values, tags):
Because get_metrics returns a single tuple.
If it's really essential to "loop" just once, perhaps wrap the one tuple
in a list:
for metric_data in [get_metrics(server_status_json, mmapv1_metrics,
More information about the Python-list