Escribir múltiples diccionarios a CSV con un encabezado con Python

Estoy intentando escribir varios diccionarios en un archivo csv, donde el encabezado (clave) se escribe solo una vez y las filas (valores) se escriben según la clave. Pude resolver esto para dos diccionarios, pero ¿qué sucede si tengo varios diccionarios que deben escribirse?

Estoy transmitiendo tweets que se convierten a json, así que estoy tratando de terminar con un archivo CSV ordenado por cada clave JSON. Aquí hay una explicación más detallada de lo que estoy tratando de hacer ( Escribiendo múltiples JSON a CSV en Python – Diccionario a CSV. Aquí está con lo que estoy tratando de terminar pero con miles de posibles filas de datos (de preferencia ordenados por clave ):

Mesa

Aquí está mi código básico para dos diccionarios:

import csv my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4', 'key5': 'value5', 'key6': 'value6', 'key7': 'value7'} my_dict2 = {'key1': 'value1A', 'key2': 'value2A', 'key3': 'value3A', 'key4': 'value4A', 'key5': 'value5A', 'key6': 'value6A', 'key7': 'value7A'} with open('mycsvfile.csv', 'wb') as f: w = csv.DictWriter(f, my_dict.keys()) w.writeheader() w.writerow(my_dict) if my_dict.keys() == my_dict2.keys(): w.writerow(my_dict2) print my_dict 

PD soy un principiante!

Puedes poner los múltiples dictados en una lista. Luego, recorre esa lista y solo escribe las filas donde coinciden las claves. Algo como esto:

 keys = ['key1', 'key2', 'key3', 'key4', 'key5'] # and so forth.. dictionaries = [my_dict, my_dict2] # Just an example, you probably build this list while you stream the tweets. with open('mycsvfile.csv', 'wb') as f: w = csv.DictWriter(f, my_dict.keys()) w.writeheader() for d in [x for x in dictionaries if x.keys() == keys]: # only matching keys. w.writerow(d)