Population lookup via ISO 3166 country codes
Project description
pypopulation
Lightweight population lookup using ISO 3166 alpha-1/2 country codes for Python 3.5 and higher.
>>> import pypopulation
>>>
>>> pypopulation.get_population("DE") # Germany
83132799
The aim is to provide a minimalist package with no dependencies that does one thing only, as best as possible. Population figures are read from a JSON file into Python dictionaries at import time. The API then only exposes the dictionaries.
The given figures are estimates at best. Read below for more details on the data source.
Interface
The API is formed by 3 functions:
get_population_a2
: population for a 2-letter country codeget_population_a3
: population for a 3-letter country codeget_population
: population for either a 2-letter or a 3-letter country code
All functions return None
if no country is found for the given country code. Lookup is case insensitive, i.e. "DE"
and "de"
give same results.
Lookups using country names are difficult & not currently supported, but the source JSON file does contain them. This is to make the source file more comprehensible. If all you have to work with is a country name, consider using pycountry
to resolve your names to ISO 3166 codes first.
If you would like to build your own wrapper around the source JSON, you can do:
countries: t.List[t.Dict] = pypopulation._load_file()
Installation
With pip
from PyPI:
pip install pypopulation
Development
I'm using Pipenv
to maintain development dependencies.
pipenv sync --dev
: create venv with dev depspipenv run lint
: runFlake8
& friendspipenv run test
: rununittest
suite and produce a.coverage
file
Data source
The population figures were sourced from The World Bank (2020-07-01
). This dataset provides the country name, alpha-3 code, and population figures found in the resource JSON file. The data was enriched with alpha-2 country codes for each row. Rows not corresponding to political countries were removed, e.g. "Middle East & North Africa (excluding high income)". Some country names were adjusted for readability, e.g. expanded abbreviations. No adjustments were made to the population figures. Please refer to the linked page for a more detailed description of the dataset.
This projects aims to expose the linked data to Python code. It does not guarantee correctness of the provided figures.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pypopulation-2020.2.tar.gz
.
File metadata
- Download URL: pypopulation-2020.2.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b4ea0bcbf09c0bbaebe2420bc77f9299f513693b23dc2545b525ea00ed377d8 |
|
MD5 | e0d1438a585d65d69de6362e6c3e47ee |
|
BLAKE2b-256 | 41604a08b0c72e99ce49ba8c13d2bd99f676fc4fd3f2bcaefd9719c0c20056b5 |
File details
Details for the file pypopulation-2020.2-py3-none-any.whl
.
File metadata
- Download URL: pypopulation-2020.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec48d0e793c00d4925b252cd00bb398d7c38da42c877814a014bcd246367a0d0 |
|
MD5 | 3cd4bb574508dfb43388e0e3d8afcd22 |
|
BLAKE2b-256 | 7b06da8fe75d40731fcb7bc128187a714f5966fa2c34d25cd189de191ae422a5 |