Exporting only certain fields from a PostGIS table using QGIS Python

المشرف العام

Administrator
طاقم الإدارة
I'm trying to export tables from a PostGIS database into MapInfo TAB files, but only certain rows and columns. I have my rows exporting right, using a query, but I'm stuck on just getting the columns I'm interested in. I thought the

request.setSubsetOfAttributes(["obj","name","railway"],vlayer.pendingFields())

below would do the trick, but I'm still getting all of the original fields in my output.

if table == "line_table": fields = vlayer.pendingFields() railway = ["Railway", r""""railway" != ''"""] request = QgsFeatureRequest() request.setFilterExpression(railway[1]) request.setSubsetOfAttributes(["obj","name","railway"],vlayer.pendingFields()) selectedFeatures = vlayer.getFeatures(request) selectedRows = [] for feature in selectedFeatures: selectedRows.append(feature.id()) vlayer.setSelectedFeatures(selectedRows) output = outputBase + "/" + railway[0] + "_" + database + ".tab" QgsVectorFileWriter.writeAsVectorFormat(vlayer, output, encoding, coordsys, "MapInfo File", True) print "Translation of " + railway[0] + "_" + database + ".tab successful."

أكثر...
 
أعلى