persons = [
{"name":"howard", "adress":"New Jersey", "blood group":"AB"},
{"name":"harry", "adress":"New York", "blood group":"O"},
]
output_file = "outputfile.tsv"
with open(outfilename, "w") as output:
for row in persons:
column_values = row.values()
line = "\t".join(column_values) '\n'
output.write(line)
I tried using methods for csv but it didnt work furthermore I tried changing the dictionary but was not succesufull
CodePudding user response:
To add a header to the TSV file, you can simply write the header line to the file before writing the data rows.
Here is an example of how you can do this:
output_file = "outputfile.tsv"
# Create a list of column names
column_names = ["name", "adress", "blood group"]
with open(output_file, "w") as output:
# Write the header line
header = "\t".join(column_names) '\n'
output.write(header)
# Write the data rows
for row in persons:
column_values = row.values()
line = "\t".join(column_
CodePudding user response:
Use csv module. In particular csv.DictWriter()
. It can add the header using the dict
keys as the field names and writeheader()
to create the header. Then you write out the data using writerows()
.
import csv
persons = [
{"name":"howard", "adress":"New Jersey", "blood group":"AB"},
{"name":"harry", "adress":"New York", "blood group":"O"},
]
output_file = "outputfile.tsv"
with open(output_file, 'w') as csv_file:
hdr = persons[0].keys()
csvDictR = csv.DictWriter(csv_file, hdr, delimiter='\t')
csvDictR.writeheader()
csvDictR.writerows(persons)
cat outputfile.tsv
name adress blood group
howard New Jersey AB
harry New York O