使用Python从JSON嵌套列表和字符串数组中提取值
我正试图从JSON数据集中提取马萨诸塞州波士顿多个街区的坐标,但我一直在努力只获取每个城市的第一对坐标;下面是Roslindale坐标的小版本。 现在我已经提取了我想要使用的数据 这将返回多个坐标对,但我只需要第一对,下面是我现在返回的示例输出: 这可能有点过分,但这使得查询像这样的嵌套JSON结构变得非常容易 遍历文档时,首先需要获取数组中的每个元素(使用Python从JSON嵌套列表和字符串数组中提取值,python,json,pandas,numpy,geopandas,Python,Json,Pandas,Numpy,Geopandas,我正试图从JSON数据集中提取马萨诸塞州波士顿多个街区的坐标,但我一直在努力只获取每个城市的第一对坐标;下面是Roslindale坐标的小版本。 现在我已经提取了我想要使用的数据 这将返回多个坐标对,但我只需要第一对,下面是我现在返回的示例输出: 这可能有点过分,但这使得查询像这样的嵌套JSON结构变得非常容易 遍历文档时,首先需要获取数组中的每个元素([*]),然后为每个元素选择一个对象(Python字典)中的项。您将在properties下选择邻居,然后选择Name(properties.N
[*]
),然后为每个元素选择一个对象(Python字典)中的项。您将在properties
下选择邻居,然后选择Name
(properties.Name
)。对于类似嵌套的属性,也可以执行相同的操作
坐标位于几何体下。坐标是坐标对数组的数组
导入jmespath
作为pd进口熊猫
query=”“”
[*].{
邻居:属性。名称,
邻居ID:properties.neighborary\u ID,
SqMiles:properties.SqMiles,
纬度:几何坐标[0][0][0][0],
经度:几何。坐标[0][0][0][1]
}
"""
compiled=jmespath.compile(查询)
结果=编译的.search(波士顿社区)
df=pd.DataFrame.from_记录(结果)
#邻里邻居ID平方英里经纬度
#0 Roslindale None 2.51-71.125927 42.272013
基本上你需要一列中的LAT和另一列中的所有LONG?是的,这会有帮助,但每个城市大约有1200个纬度和经度对,我只想在每个城市拉第一对。回答很好,不知道JMESPath,谢谢分享+1 :)
"features": [{
"type": "Feature",
"properties": {
"Name": "Roslindale",
"Acres": 1605.5682375,
"SqMiles": 2.51,
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
-71.125927174853857,
42.272013107957406
],
[
-71.125927174853857,
42.272013107957406
]
]
],
[
[
[
-71.125830766767592,
42.272212845889705
],
[
-71.125830766767592,
42.272212845889705
]
]
],
[
[
[
-71.125767203228904,
42.272315958536389
],
[
-71.125767203228904,
42.272315958536389
]
]
]
]
}
},
for data in boston_neighborhoods:
neighborhood_name = data['properties']['Name']
neighborhood_id = data['properties']['Neighborhood_ID']
neighborhood_size = data['properties']['SqMiles']
neighborhood_latlon = data['geometry']['coordinates']
neighborhood_lat = neighborhood_latlon
neighborhood_lon = neighborhood_latlon
neighborhoods = neighborhoods.append({'Neighborhood': neighborhood_name,
'Neighborhood_ID': neighborhood_id,
'SqMiles': neighborhood_size,
'Latitude': neighborhood_lat,
'Longitude': neighborhood_lon}, ignore_index=True)
Latitude | Longitude
--------------------------------------------------------
[[[[-71.12592717485386, | [[[[-71.12592717485386,
42.272013107957406], [... | 42.272013107957406], [...