我正在写一个函数在属性表中注册值进行记录:
def process(self):
"""Fill dimension field with TOPSIS -rank- value """
provider = self.activeLayer.dataProvider()
if provider.fieldNameIndex(self.parameters['dimension'])==-1:
self.activeLayer.dataProvider().addAttributes([QgsField(self.parameters['dimension'], QVariant.Double,"",24,4,"")] )
#edit is a shortcut that replaces layer.beginEditCommand and layer.endEditCommand
with edit(self.activeLayer):
for f,i in zip(self.activeLayer.getFeatures(),range(len(self.relativeCloseness))):
#print(self.parameters['dimension'],self.relativeCloseness[i])
f[self.parameters['dimension']] = self.relativeCloseness[i]
self.activeLayer.updateFeature(f)
如果 self.relative Closeness [i] 有一个值!= 0,值将正确记录,但如果值为== 0,则在属性表中值将记录为“NULL”值。谁能帮我理解问题出在哪里? 具有空值而不是零值的属性表示例