I writting a script, where I dowload a data from json file (about temperature and data from datetime) and I want save the data i csv file. The script has a schedule set every minute to download new data from json. I have a problem with one thing. Running the code causes the data to write correctly, but each time with a header. The question is how to save the header only once?
My script: ...
with open('Temp.csv', 'a', newline='') as file:
fieldnames = ['Date', 'Temp']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Date':now, 'Temp':Temperatura})
My DataFrame look like this:
but I want: enter image description here
Thanks for help, Dawid
You need to write the header before the first row. So check the existence of the file to decide on writing the header.
import os
file_exists = os.path.exists('Temp.csv')
with open('Temp.csv', 'a', newline='') as file:
fieldnames = ['Date', 'Temp']
writer = csv.DictWriter(file, fieldnames=fieldnames)
if not file_exists:
writer.writeheader() # So the header is written only once just before the first row
writer.writerow({'Date':now, 'Temp':Temperatura})
For the rest rows, since the csv file exists, header is not written again.