- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Covid-19 Dataset建立一个SIR model .为了构建这个模型,我需要每个位置(国家或省/州和/或县)的人口来计算 SIR 中的 S(易感性)。由于此数据集不包含人口数据,我认为最好使用 API 来执行此操作。我遇到了countryinfo ,但人口估计自 2018 年以来未更新(根据示例和 pypi );此外,在输入国家名称时必须小心,因为 countryinfo
接受的名称不一定与数据集中提供的名称相同。
from countryinfo import CountryInfo
country = CountryInfo('Singapore')
p = country.population()
print(p)
# 5469700
country = CountryInfo('United States')
# country = CountryInfo('US') # is not accepted
p = country.population()
print(p)
# 319259000
我可以在 google 中输入通用查询(即输入 "US"
或 "United States"
)来查找任何位置的人口,但我不确定如何在 python 中以编程方式执行此操作。在下面的 location
位置键入 'us'
将显示美国人口(通过 this solution )。
query = 'https://www.google.com/search?q=' + location + 'population
我认为 wikipedia API可以用来达到同样的效果,但我不太清楚该怎么做。有没有更好的办法?如果没有,我如何使用 wikipedia
从查询位置获取人口?
最佳答案
正如 smartse 所提到的,使用 Wikidata 而不是 Wikipedia 肯定更容易解决这个问题。在维基百科上,信息不是以结构化的方式存储的,因此您无法编写查询来直接获取人口。您必须使用 API 调用来加载有关该地点的文章,然后使用您自己的代码解析文本以检索人口。
要查询维基数据,您可以使用 Wikidata Query Service .查询首先执行给定关键字的搜索,然后返回结果的总体如下
SELECT ?population WHERE {
SERVICE wikibase:mwapi {
bd:serviceParam mwapi:search "Singapore" .
bd:serviceParam mwapi:language "en" .
bd:serviceParam wikibase:api "EntitySearch" .
bd:serviceParam wikibase:endpoint "www.wikidata.org" .
bd:serviceParam wikibase:limit 1 .
?item wikibase:apiOutputItem mwapi:item .
}
?item wdt:P1082 ?population
}
请注意,维基数据中的数据有时也会过时。但是,由于从一年到下一年,人口不会发生显着变化,因此这对您的应用程序来说应该不是问题。
关于python-3.x - 如何使用维基百科 API 获取位置查询(国家或州/省和/或县)的人口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60845455/
我是一名优秀的程序员,十分优秀!