[GIS] Getting attributes of selected features using PyQGIS

fields-attributeslistpyqgisqgisselect

Could anybody provide an example how to get the attributes of selected features?

I tried the following code in the Python Console : but I'm stuck at the point where I'd like to get the attributes:

from qgis.utils import iface

canvas = iface.mapCanvas()
cLayer = canvas.currentLayer()
selectList = []

if cLayer:
    count = cLayer.selectedFeatureCount()
    print (count)
    selectedList = layer.selectedFeaturesIds()

    for f in selectedList:
        # This is where I'm stuck
        # As I don't know how to get the Attributes of the features

Best Answer

This will work:

layer = iface.activeLayer()

features = layer.selectedFeatures()

for f in features:
    print f.attributeMap()

In PyQGIS 3:

layer = iface.activeLayer()

features = layer.selectedFeatures()

for f in features:
    # refer to all attributes
    print (f.attributes()) # results in [3, 'Group 1', 4.6]

for f in features:
    # refer to a specific values of a field index
    print(f.attribute(1)) # results in Group 1