Você pode inserir o código a seguir no Python Console para limpar TODOS os atributos NULL
de um shapefile carregado no QGIS. Selecione a camada no painel de camadas (Sumário) e execute o 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()
Isso foi testado no QGIS 2.8.2.
ATUALIZAÇÃO :
Em resposta ao comentário de @Vince, o código a seguir pode ser copiado / colado diretamente no console do Python e alterará os valores dos atributos, dependendo do tipo de campo ( 0
por exemplo, para campos inteiros ; NULL
para campos de string ; e uma época de 1900-01-01
para um campo Data ):
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()