对 Pandas 数据框的 Web 服务查询

Webservice Query to Pandas Dataframe

问题

我需要从此处托管的 Web 服务中提取信息 https://fogos.icnf.pt/localizador/webserviceocorrencias.asp

Web 服务接受各种查询,例如: https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro

其中 ano 是年份,distrito 是地区

这将 return 法鲁区 2021 年的所有活动

如何将其导入 pandas 数据框?有什么想法吗?

提前致谢!

您可以解析 XML 并从 XML 个树元素创建 DataFrame:

import pandas as pd
import requests
import io

# get data
resp = requests.get(
    'https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro')

# parse XML
et = ElementTree.parse(io.StringIO(resp.text))

# create DataFrame
df = pd.DataFrame([
    {f.tag: f.text for f in e.findall('./')} for e in et.findall('./')]
)

df

输出:

   DISTRITO       TIPO   ANO AREAPOV AREAMATO AREAAGRIC AREATOTAL  \
0      Faro   Agrícola  2021       0        0    0.0344    0.0344   
1      Faro  Florestal  2021       4      0.5         0       4.5   
2      Faro  Florestal  2021       0    0.026         0     0.026   
3      Faro  Florestal  2021       0   0.3577         0    0.3577   
4      Faro   Agrícola  2021       0        0    0.0919    0.0919   
5      Faro   Agrícola  2021       0        0    0.0794    0.0794   
6      Faro   Agrícola  2021       0        0     0.073     0.073   
7      Faro  Florestal  2021       0   0.0257         0    0.0257   
8      Faro  Florestal  2021       0   0.2447         0    0.2447   
9      Faro  Florestal  2021       0   0.0554         0    0.0554   
10     Faro   Agrícola  2021       0        0     0.003     0.003   
...