QGISで、レイヤのフィールド名を取得するスクリプトは下記のように記述します。



layer = iface.activeLayer()

# QGIS2ではpendingFields()
fields = layer.pendingFields()
print "fields: " + str(fields)

for f in fields:
print "fieldname: " + str(f.name())


# QGIS3ではfields()
fields = layer.fields()
# QGIS3ではprint文にはカッコを付ける(Python3)
print ("fields: " + str(fields))

for f in fields:
print ("fieldname: " + str(f.name()))


実行すると選択されたレイヤのフィールド名がコンソールに表示されます。
QGIS_040_01


全てのレイヤのフィールドをオブジェクトで取得:


# QGIS2ではpendingFields()
fields = layer.pendingFields()
print "fields: " + str(fields)

# QGIS3ではfields()
fields = layer.fields()
# QGIS3ではprint文にはカッコを付ける(Python3)
print ("fields: " + str(fields))


.name()でフィールド名を取得:


for f in fields:
print "fieldname: " + str(f.name())

# QGIS3ではprint文にはカッコを付ける(Python3)
for f in fields:
print ("fieldname: " + str(f.name()))


レイヤのフィールド名を調べる事ができます。





book


Q&A