【发布时间】:2019-07-05 22:02:54
【问题描述】:
我正在编写一个从https://restcountries.eu/ 中提取国家/地区的程序 我正在使用数据保存在我的 mongo 数据库中并更新它。 ofc,数据不会经常变化,但这是未来十年的数据。
const COUNTRIES_URL = 'https://restcountries.eu/rest/v2/all';
const axios = require('axios');
exports.httpCrawl = () => (
axios.get(COUNTRIES_URL).then(response => (
response.data.map(country => ({
name: country.name,
digits2: country.alpha2Code,
digits3: country.alpha3Code,
countryId: country.numericCode,
flag: country.flag
})))));
现在当数据在数据库中时,我想用它来映射我从其他 API 获得的其他实体,例如体育比赛。但游戏带有国家/地区的替代名称(例如 England 而不是 Great British)。
有没有办法将国家/地区的替代名称映射到 iso 3166 名称/id?
【问题讨论】:
-
您基本上是在问是否有一项服务可以使用其替代名称获取一个国家/地区的 ISO3166 名称?
-
@James 更多地询问是否有人以前解决过这个问题。我确定我不是第一个处理替代名称的人。如果有这方面的服务/包/API,那就太好了。如果有所有常用替代名称的封闭列表,也很酷
-
有很多来源可以提取国家/地区列表,但您的特殊情况是您需要映射替代名称(我不一定会说这是一个常见要求)。您可能需要利用 Google Places API 之类的东西来执行模糊搜索,而不是直接 1:1 映射的东西。
-
@James 这是个好主意,我会在这里尝试并更新
-
@James 这比我希望的要好得多!我想接受这个解决方案
标签: node.js mongodb api dictionary iso-3166