2017-12-22 5 views
0

Ich bin derzeit ein Python-Geospatial-Analyse-Tutorial-Buch von Joel Lawhead, und ich bin auf einen Fehler beim Versuch, Shapefiles zu bearbeiten.Bearbeiten von Shapefiles in Python über neue Writer-Objekt funktioniert nicht

Die Shapefile, die ich verwende, ist eine http://git.io/vLd8Y. Ich führe meinen Code in einem Jupyter Notebook auf python3.

Dies ist mein Code. Ich lese einfach ein Shapefile als Reader-Objekt r ein und erstelle ein neues Writer-Objekt w mit demselben Shapetype wie r. Dann versuche ich, die Datensätze von r an w anzuhängen.

import shapefile 
r = shapefile.Reader("NYC_MUSEUMS_GEO") 
w = shapefile.Writer(r.shapeType) 
w.fields = list(r.fields) 
w.records.extend(r.records()) 

aber ich laufe in diesen Fehler:

AttributeError       Traceback (most recent call last) 
<ipython-input-151-ceee096fbafa> in <module>() 
     6 w = shapefile.Writer(r.shapeType) 
     7 w.fields = list(r.fields) 
----> 8 w.records.extend(r.records()) 

AttributeError: 'Writer' object has no attribute 'records' 

Irgendwelche Ideen warum?

Antwort

0

Ich kann das beschriebene Problem nicht reproduzieren. Ich begann mit:

$ python 
Python 3.5.4 (default, Oct 9 2017, 12:07:29) 
>>> 

Und installieren Sie das pyshp Modul:

$ pip install pyshp 
... 
Successfully installed pyshp-1.2.12 

Und jetzt:

$ python 
Python 2.7.13 (default, Dec 1 2017, 09:21:53) 
[GCC 6.4.1 20170727 (Red Hat 6.4.1-1)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import shapefile 
>>> r = shapefile.Reader("NYC_MUSEUMS_GEO") 
>>> w = shapefile.Writer(r.shapeType) 
>>> w.fields = list(r.fields) 
>>> w.records.extend(r.records()) 
>>> len(w.records) 
130 

Haben die python und pyshp Versionen, die Sie mit Spiel arbeiten, was ich verwende? Wenn nicht, können Sie Ihre Frage aktualisieren, um die spezifischen Details Ihrer Umgebung einzubeziehen?

Verwandte Themen