Більше

Збережіть у списку python таблицю атрибутів вектора в QGIS


У мене дуже проста проблема ... Я завантажив у QGIS (через консоль py) шар csv (без геометрії) з 4 полів і 3 рядків:

#завантажити шар csv = QgsVectorLayer ("шлях/до/the/csv", "csvlayer", "delimitedtext") #додати його до TOC QgsMapLayerRegistry.instance (). addMapLayer (шар)

Я намагаюся зберегти таблицю атрибутів шару csv у списку python. Я намагався:

для i у шарі.getFeatures (): l = [] l.append (i.attributes ())

це працює, але у списку у мене є лише останній рядок таблиці атрибутів, а не всі 3 рядки.

Як я можу зберегти всі 3 рядки як списки в основному списку?

Щось на зразок:

l [[1,2,3], [4,5,6], [7,8,9]]

Це чисто питання Python: у вашому сценарії ви ініціалізуєте список на кожній ітерації

t = [1,2,3,4] для i in t: l = [] l.append (i) друк l [4]

поки

l = [] для i in t: l.append (i) друк l [1,2,3,4]

або з розумінням списку

l = [i для i в t]

Отже, ваш сценарій стає таким:

l = [i.attributes () для i у шарі.getFeatures ()]

У такому порядку:

l = [] для i у шарі.getFeatures (): l.append (i.attributes ())

У вашому коді є список, який створюється та переписується кожного разу.