2016-04-20 2 views
0

Мои GeoJSON выглядит такПеребор 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] 
     } 
    } 
] 
} 

Я хочу получить доступ properties и проверить некоторые values для key

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

я получаю

!

b

!

c

!

Почему это ?! Кажется, мой цикл не возвращает мне словарь ?!

Если я сделаю это

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

Я получаю

типа 'юникод'

value1

типа 'юникод'

value2

...

Почему не этот словарь? И если это не словарь, почему я могу получить доступ к значениям за «юникодом», как в первом цикле, который я показал ?!

ответ

0

features["properties"]["value1"] указывает на abc строка, которую вы перебираете по характеру. Вместо этого, вы, вероятно, имел в виду перебрать properties словаря:

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

Или, вы можете цикл по словарю ключей:

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

Подробнее о словарях и сквозными методами здесь:

+0

Для чего нужен элемент 'item()'? – Stophface

+0

@Stophface 'items()' (а также 'iteritems()' в Python 2) дает вам доступ к обеим ключам и значениям одновременно. Для получения дополнительной информации следуйте ссылкам. Благодарю. – alecxe

+0

Хм, я подумал, что, когда я могу повторять, как в моем первом цикле через словарь, почему я не могу это сделать в своем вложенном цикле? – Stophface

Смежные вопросы