Puede ingresar el siguiente código en la Consola Python para borrar TODOS los atributos NULLpara un archivo shape cargado en QGIS. Seleccione la capa del panel de capas (Tabla de contenido) y ejecute el código:
layer = qgis.utils.iface.activeLayer()
layer.startEditing()
for field in layer.dataProvider().attributeIndexes():
for feature in layer.getFeatures():
layer.changeAttributeValue(feature.id(), field, NULL)
layer.commitChanges()
Esto fue probado en QGIS 2.8.2.
ACTUALIZACIÓN :
En respuesta al comentario de @Vince, el siguiente código se puede copiar / pegar directamente en la consola de Python y cambiará los valores de los atributos según el tipo de campo (es decir, 0para campos enteros ; NULLpara campos de cadena ; y una época de 1900-01-01para un campo de fecha ):
layer = qgis.utils.iface.activeLayer()
layer.startEditing()
for field in layer.pendingFields():
if field.typeName() == 'Integer':
name_int = field.name()
for feature in layer.getFeatures():
feature[name_int] = '0'
layer.updateFeature(feature)
if field.typeName() == 'String':
name_str = field.name()
for feature in layer.getFeatures():
feature[name_str] = NULL
layer.updateFeature(feature)
if field.typeName() == 'Date':
name_dat = field.name()
for feature in layer.getFeatures():
feature[name_dat] = '1900-01-01'
layer.updateFeature(feature)
layer.commitChanges()