Puede ingresar el siguiente código en la Consola Python para borrar TODOS los atributos NULL
para 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, 0
para campos enteros ; NULL
para campos de cadena ; y una época de 1900-01-01
para 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()