2016-04-20 19 views
0

Mein GeoJSON sieht aus wie soIterieren über GeoJSON

{ 
"type": "FeatureCollection", 
"crs": { 
    "type": "name", 
    "properties": { 
     "name": "urn:ogc:def:crs:OGC:1.3:CRS84" 
    } 
}, 

"features": [{ 
     "type": "Feature", 
     "properties": { 
      "value1": "abc", 
      "value2": 0, 
      "value3": 0.99, 
      "value4": "def", 
      "value5": "882.3", 
      "value6": 12, 
     }, 
     "geometry": { 
      "type": "Point", 
      "coordinates": [1, 1] 
     } 
    } 
] 
} 

I properties und prüfen einige values für eine key

for features in geoJsonPoints["features"]: 
    for interesting in features["properties"]["value1"]: 
     print interesting 
     print "!" 

ich

ein

zugreifen möchten !

b

!

c

!

Warum ist das ?! Es scheint, dass meine Schleife mir kein Wörterbuch zurückgibt ?!

Wenn ich dies tun

for features in geoJsonPoints["features"]: 
    for interesting in features["properties"]: 
     print type(intereseting) 
     print interesting 

I

Typ 'Unicode'

Wert1

Typ 'Unicode'

Wert2

erhalten

...

Warum ist das nicht ein Wörterbuch? Und, wenn es kein Wörterbuch ist, warum kann ich auf die Werte hinter dem "Unicode" zugreifen, wie in der ersten Schleife, die ich zeigte ?!

Antwort

0

features["properties"]["value1"] zeigt auf abc Zeichenfolge, die Sie Zeichen für Zeichen durchlaufen. Stattdessen bedeutete Sie wahrscheinlich über das properties Wörterbuch iterieren:

for property_name, property_value in features["properties"].items(): 
    print(property_name, property_value) 

Oder können Sie Schleife über die Dictionary-Schlüssel:

for property_name in features["properties"]: 
    print(property_name, features["properties"][property_name]) 

Sehen Sie mehr über Wörterbücher und Looping Techniken hier:

+0

Warum brauche ich die 'item()' dafür? – Stophface

+0

@Stophface 'items()' (sowie 'iteritems()' in Python 2) gibt Ihnen Zugriff auf Schlüssel und Werte gleichzeitig. Bitte folgen Sie den veröffentlichten Links für weitere Informationen. Vielen Dank. – alecxe

+0

Hm, ich dachte, wenn ich wie in meiner ersten Schleife durch ein Wörterbuch iterieren kann, warum kann ich es dann nicht in meiner verschachtelten Schleife tun? – Stophface