Issue description
I want to unpack a list of tuples to a csv-file in Python 3.
The header size is fixed (4 items); the tuples are variable in size (1 to 4 items).
The unpacked tuple data should always align with the relevant header.
See examples and python code attempts below.
Question
How can I get the unpacked tuple data aligned with the fixed header, regardless of the tuple size?
Examples:
CSV-output (correct alignment between header and data)
data = [(value1, value2, value3, value4), (value1, value2, value3, value4)]
DataHeader1, DataHeader2, DataHeader3, DataHeader4
value1, value2, value3, value4
value1, value2, value3, value4
CSV-output (misalignment between header and data)
data = [(value1, value2, value4), (value1, value2, value4)] --> without value3
DataHeader1, DataHeader2, DataHeader3, DataHeader4
value1, value2, value4
value1, value2, value4
Should be
DataHeader1, DataHeader2, DataHeader3, DataHeader4
value1, value2, , value4
value1, value2, , value4
Python code (OK):
header = 'DataHeader1, DataHeader2, DataHeader3, DataHeader4'
data = [('value1','value2','value3','value4'), ('value1','value2','value3','value4')]
print(header)
print(''.join('{0},{1},{2},{3}\n'.format(a,b,c,d) for a,b,c,d in data))
Output
DataHeader1, DataHeader2, DataHeader3, DataHeader4
value1, value2, value3, value4
value1, value2, value3, value4
Python code (Not OK)
data = [('value1','value2', 'value4'), ('value1','value2','value4')]
print(''.join('{0},{1},{2},{3}\n'.format(a,b,c,d) for a,b,c,d in data))
Output (does not print due to tuple size mismatch)
ValueError: not enough values to unpack (expected 4, got 3)