如何使用 id/codarea 作为标识符将一个 json 中的特征信息添加到 geoJson 中?
How can I add feature information from one json into geoJson using id/codarea as the identifier?
以下步骤显示了您可以在哪里下载文件以重现此问题。如何使用 id/codarea 作为标识符将一个 json 对象的自治市信息添加到另一个对象中。
请求地理位置json
import folium
import os
import requests
url = 'https://servicodados.ibge.gov.br/api/v2/malhas/?resolucao=5&formato=application/vnd.geo+json&qualidade=4'
meshes_mun = requests.get(url, headers=headers).json()
文件结构片段:
{'type': 'Feature',
'properties': {'codarea': '2303600',
'centroide': [-36.722055140733, -6.158308569735204]},
'geometry': {'type': 'Polygon',
'coordinates': [[[-36.6532, -6.1118],
[-36.6828, -6.1277],
[-36.7005, -6.1453],
.....
在下面你可以找到我想要 link 和上面的 meshes_mun
的字符串名称和 ID。
我需要link的名称和id是更高级别的:'id': 2303600, 'nome': 'Catarina'
,所以不需要添加其他功能,但如果可以的话可以添加它们。
# url to request information of all municipalities (contains the id number)
mun_url = 'https://servicodados.ibge.gov.br/api/v1/localidades/municipios'
cities_json = requests.get(mun_url, headers=headers).json()
文件结构片段:
{'id': 2303600,
'nome': 'Catarina',
'microrregiao': {'id': 23020,
'nome': 'Sertão de Inhamuns',
'mesorregiao': {'id': 2304,
'nome': 'Sertões Cearenses',
'UF': {'id': 23,
'sigla': 'CE',
'nome': 'Ceará',
'regiao': {'id': 2, 'sigla': 'NE', 'nome': 'Nordeste'}}}}},
How can I add feature information from one json into geoJson using id/codarea as the identifier?
可以这样做
import requests
url = "https://servicodados.ibge.gov.br/api/v2/malhas/?resolucao=5&formato=application/vnd.geo+json&qualidade=4"
meshes_mun = requests.get(url).json()
mun_url = "https://servicodados.ibge.gov.br/api/v1/localidades/municipios"
cities_json = requests.get(mun_url).json()
for mun in meshes_mun["features"]:
codarea = int(mun["properties"]["codarea"])
matched_city = [city for city in cities_json if city["id"] == codarea][0]
mun["properties"]["nome"] = matched_city["nome"]
以下步骤显示了您可以在哪里下载文件以重现此问题。如何使用 id/codarea 作为标识符将一个 json 对象的自治市信息添加到另一个对象中。
请求地理位置json
import folium
import os
import requests
url = 'https://servicodados.ibge.gov.br/api/v2/malhas/?resolucao=5&formato=application/vnd.geo+json&qualidade=4'
meshes_mun = requests.get(url, headers=headers).json()
文件结构片段:
{'type': 'Feature',
'properties': {'codarea': '2303600',
'centroide': [-36.722055140733, -6.158308569735204]},
'geometry': {'type': 'Polygon',
'coordinates': [[[-36.6532, -6.1118],
[-36.6828, -6.1277],
[-36.7005, -6.1453],
.....
在下面你可以找到我想要 link 和上面的 meshes_mun
的字符串名称和 ID。
我需要link的名称和id是更高级别的:'id': 2303600, 'nome': 'Catarina'
,所以不需要添加其他功能,但如果可以的话可以添加它们。
# url to request information of all municipalities (contains the id number)
mun_url = 'https://servicodados.ibge.gov.br/api/v1/localidades/municipios'
cities_json = requests.get(mun_url, headers=headers).json()
文件结构片段:
{'id': 2303600,
'nome': 'Catarina',
'microrregiao': {'id': 23020,
'nome': 'Sertão de Inhamuns',
'mesorregiao': {'id': 2304,
'nome': 'Sertões Cearenses',
'UF': {'id': 23,
'sigla': 'CE',
'nome': 'Ceará',
'regiao': {'id': 2, 'sigla': 'NE', 'nome': 'Nordeste'}}}}},
How can I add feature information from one json into geoJson using id/codarea as the identifier?
可以这样做
import requests
url = "https://servicodados.ibge.gov.br/api/v2/malhas/?resolucao=5&formato=application/vnd.geo+json&qualidade=4"
meshes_mun = requests.get(url).json()
mun_url = "https://servicodados.ibge.gov.br/api/v1/localidades/municipios"
cities_json = requests.get(mun_url).json()
for mun in meshes_mun["features"]:
codarea = int(mun["properties"]["codarea"])
matched_city = [city for city in cities_json if city["id"] == codarea][0]
mun["properties"]["nome"] = matched_city["nome"]