Bạn có thể nhập mã sau vào Bảng điều khiển Python để xóa TẤT CẢ các thuộc tính NULLcho một shapefile được tải vào QGIS. Chọn lớp từ bảng điều khiển lớp (Mục lục) và chạy mã:
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()
Điều này đã được thử nghiệm trên QGIS 2.8.2.
CẬP NHẬT :
Để đối phó với những nhận xét của @Vince, mã sau đây có thể được sao chép trực tiếp / dán vào Python console và sẽ thay đổi các giá trị của các thuộc tính tùy thuộc vào loại của lĩnh vực (ví dụ 0cho số nguyên lĩnh vực; NULLcho chuỗi các lĩnh vực; và một kỷ nguyên của 1900-01-01cho một trường ngày ):
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()