<!-- language-all: python --> You set feature fields to empty `QgsFields`. fields = QgsFields() # fields is empty feature.setFields(fields) # you set the empty fields Instead, pass `layer.fields()` to `QgsFeature`. feature = QgsFeature(layer.fields()) Use this script: ```py srcFile = "D:\\Data\\filename.csv" layer = QgsVectorLayer("Polygon?crs=EPSG:2193", "Polygons", "memory") QgsProject.instance().addMapLayer(layer) provider = layer.dataProvider() provider.addAttributes([QgsField('ViewName',QVariant.String, '', 50, 0), QgsField('FigName',QVariant.String, '', 10, 0)]) layer.updateFields() with open(srcFile,'r') as infile: rows = infile.readlines() for r in rows: parts = r.split(',') xMin = float(parts[2]) yMin = float(parts[3]) xMax = float(parts[4]) yMax = float(parts[5]) rect = QgsRectangle(xMin, yMin, xMax, yMax) polygon = QgsGeometry.fromRect(rect) feature = QgsFeature(layer.fields()) feature.setGeometry(polygon) feature['ViewName'] = parts[0] feature['FigName'] = parts[-2] provider.addFeatures([feature]) ``` Sample data: 1,0, 1804512.8556, 5453390.58088, 1813512.8556, 5461390.58088, yedi1, sekiz1, dokuz1 2,0, 1814512.8556, 5473390.58088, 1823512.8556, 5471390.58088, yedi2, sekiz2, dokuz2 Result: [![enter image description here][2]][2] [1]: https://i.sstatic.net/Y8DU9.png [2]: https://i.sstatic.net/JiCs2.png