如何在QgsVectorFileWriter.writeAsVectorFormat中使用fieldValueConverter

时间:2019-06-11 16:02:11

标签: python qgis

我有一个具有197个字段的shapefile,但我只想保留大约7个字段。当我使用QgsVectorlayer.provider()。deleteAttributes()删除字段时,大约需要20分钟。我想知道如果我使用QgsVectorFileWriter.writeAsVectorFormat来创建仅包含这7个字段的新图层是否会更快。但是,我确实在语法上苦苦挣扎,尤其是fieldValueConverter参数接受的语法。

我一直在查看文档(https://qgis.org/api/classQgsVectorFileWriter_1_1FieldValueConverter.htmlhttps://qgis.org/api/classQgsVectorFileWriter.html#ae54dce04a5fc1a570b6c4c4f7dfa064d),但在理解文档时遇到了很多麻烦。我也不明白错误代码试图告诉我什么。我最有信心的是,fieldValueConverter可能不像接受字段名列表那样简单... 我正在使用QGIS 3.4.4。

我所拥有的:

project = QgsProject.instance() origlayer = project.mapLayersByName("data_layer")[0]

keeplist = ["field1”, “field2”, “field3"] #example fields to keep QgsVectorFileWriter.writeAsVectorFormat(layer = origlayer , filename = "FINAL_layer", fieldValueConverter = keeplist)

错误代码:

TypeError: QgsVectorFileWriter.writeAsVectorFormat(): arguments did not match any overloaded call: overload 1: 'fieldValueConverter' is not a valid keyword argument overload 2: 'fieldValueConverter' is not a valid keyword argument overload 3: 'fieldValueConverter' is not a valid keyword argument

0 个答案:

没有答案