Вы должны использовать средство записи CSV, чтобы убедиться, что любые встроенные метасимволы, такие как запятые и кавычки, экранированы правильно, в противном случае данные, такие как {'site3':'data, data and more data'}
, повредят файл.
import csv
my_list = [{'site1':'data1'}, {'site2':'data2'}]
with open('test.csv', 'w', newline='') as out_fp:
writer = csv.writer(out_fp)
for d in my_list:
writer.writerows(d.items())
Вы можете сократить этонемного с itertools
, если хотите
import itertools
with open('test.csv', 'w', newline='') as out_fp:
csv.writer(out_fp).writerows(itertools.chain.from_iterable(
d.items() for d in my_list))