Skip to main content

An improved python package for retrieving data of all the countries in the world. Based on Manoj's

Project description

countrydata: Your Python Passport to Global Insights 🗺️

Effortlessly access comprehensive data for every country in the world with countrydata. This package provides a simple and intuitive way to retrieve information ranging from basic facts like capitals and currencies to detailed insights about states, cities, and more.

Why Choose countrydata?

  • Simplicity: Effortlessly retrieve data using intuitive functions and clear syntax.
  • Comprehensiveness: Access a wide range of data points, including demographics, geography, culture, and more.
  • Up-to-Date: We strive to maintain current information, so you can rely on the accuracy of our data.

Installation

Use pip to install countrydata:

pip install countrydata

Usage

There are 2 modules -

  1. Retrieving data of all countries (Module Countries)
  2. Retrieving data of a single country (Module Country)

Modules and their functions

Module Countries
Module Country

Module Countries

For the sake of simplicity, I will be showing less data in outputs here.

.countries()

Returns the list of all available countries in the world

from countrydata import countries

data = countries.all_countries()
data.countries() 
['Afghanistan', 'Aland Islands', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica', 'Antigua And Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas The',  'Vietnam', 'Virgin Islands (British)', 'Virgin Islands (US)', 'Wallis And Futuna Islands', 'Western Sahara', 'Yemen', 'Zambia', 'Zimbabwe'] 

.phone_code()

Returns phone codes of each country in a dictionary

from countrydata import countries

country = countries.all_countries()
print(country.phone_code()) 
{'Afghanistan': '93', 'Aland Islands': '+358-18', 'Albania': '355', 'Algeria': '213', 'American Samoa': '+1-684', 'Andorra': '376', 'Angola': '244', 'Anguilla': '+1-264', 'Antarctica': '', 'Antigua And Barbuda': '+1-268', 'Argentina': '54', 'Armenia': '374', 'Aruba': '297', 'Australia': '61', 'Austria': '43', 'Azerbaijan': '994', 'Bahamas The': '+1-242', 'Bahrain': '973', 'Bangladesh': '880', 

.currencies()

Returns currencies of each country in a dictionary

from countrydata import countries

country = countries.all_countries()
print(country.currencies()) 
{'Afghanistan': 'AFN', 'Aland Islands': 'EUR', 'Albania': 'ALL', 'Algeria': 'DZD', 'American Samoa': 'USD', 'Andorra': 'EUR', 'Angola': 'AOA', 'Anguilla': 'XCD', 'Antarctica': '', 'Antigua And Barbuda': 'XCD', 'Argentina': 'ARS', 'Belgium': 'EUR', 'Belize': 'BZD', 'Benin': 'XOF', 'Bermuda': 'BMD', 'Bhutan': 'BTN', 'Bolivia': 'BOB', 'Bosnia and Herzegovina': 'BAM', 'Botswana': 'BWP',

.capitals()

Returns captial cities of each country in a dictionary

from countrydata import countries

country = countries.all_countries()
print(country.capitals()) 
{'Afghanistan': 'Kabul', 'Aland Islands': 'Mariehamn', 'Albania': 'Tirana', 'Algeria': 'Algiers', 'American Samoa': 'Pago Pago', 'Andorra': 'Andorra la Vella', 'Angola': 'Luanda', 'Anguilla': 'The Valley', 'Antarctica': '', 'Antigua And Barbuda': "St. John's",  'Bahamas The': 'Nassau', 'Bahrain': 'Manama', 'Bangladesh': 'Dhaka', 'Barbados': 'Bridgetown', 'Belarus': 'Minsk', 'Belgium': 'Brussels', 'Belize': 'Belmopan', 

.continents()

Returns continents of each country

from countrydata import countries

country = countries.all_countries()
print(country.continents()) 
[{'country': 'Afghanistan', 'continent': 'Asia'}, {'country': 'Albania', 'continent': 'Europe'}, {'country': 'Algeria', 'continent': 'Africa'}, {'country': 'American Samoa', 'continent': 'Oceania'}, {'country': 'Andorra', 'continent': 'Europe'}, {'country': 'Angola', 'continent': 'Africa'}, {'country': 'Anguilla', 'continent': 'North America'},{'country': 'Antarctica', 'continent': 'Antarctica'}],

.countries_in_continents()

Returns a list of countries present in a continent

from countrydata import countries

country = countries.all_countries()
print(country.countries_in_continents()) 
{'Asia': ['Afghanistan', 'Armenia', 'Azerbaijan', 'Bahrain', 'Bangladesh', 'Bhutan', 'Brunei', 'Cambodia', 'China', 'Cyprus', 'East Timor', 'Georgia', 'Hong Kong', 'India', 'Indonesia', 'Iran', 'Iraq', 'Israel', 'Japan', 'Jordan', 'Kazakhstan', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Lebanon',   'Tajikistan', 'Thailand', 'Turkey', 'Turkmenistan', 'United Arab Emirates', 'Uzbekistan', 'Vietnam', 'Yemen']

.regions()

Returns countries with its region

from countrydata import countries

country = countries.all_countries()
print(country.regions()) 
[{'country': 'Afghanistan', 'location': 'Southern and Central Asia'}, {'country': 'Albania', 'location': 'Southern Europe'}, {'country': 'Algeria', 'location': 'Northern Africa'}, {'country': 'American Samoa', 'location': 'Polynesia'}, {'country': 'Andorra', 'location': 'Southern Europe'}, {'country': 'Aruba', 'location': 'Caribbean'}, {'country': 'Australia', 'location': 'Australia and New Zealand'},  

.countries_in_region()

Returns list of countries present in its region

from countrydata import countries

country = countries.all_countries()
print(country.countries_in_region()) 
{'Antarctica': ['Antarctica', 'Heard Island and McDonald Islands', 'South Georgia and the South Sandwich Islands'], 'Eastern Europe': ['Belarus', 'Hungary', 'Moldova', 'Poland', 'Romania', 'Ukraine'], 'Southern Europe': ['Albania', 'Andorra',   'Italy', 'North Macedonia', 'Yugoslavia'], 'Western Europe': ['Austria', 'Belgium', 'France', 'Germany', 'Liechtenstein',  'Switzerland'], 'North America': ['Bermuda',  'United States'],

.states()

Returns all the available states in the world with its state code

from countrydata import countries

country = countries.all_countries()
print(country.states()) 
{'id': 1836, 'name': 'Nenets Autonomous Okrug', 'state_code': 'NEN'}, {'id': 1857, 'name': 'Nizhny Novgorod Oblast', 'state_code': 'NIZ'}, {'id': 1834, 'name': 'Novgorod Oblast', 'state_code': 'NGR'}, {'id': 1888, 'name': 'Novosibirsk', 'state_code': 'NVS'}, {'id': 1846, 'name': 'Omsk Oblast', 'state_code': 'OMS'}, {'id': 1886, 'name': 'Orenburg Oblast', 'state_code': 'ORE'}, {'id': 1908, 'name': 'Oryol Oblast', 'state_code': 'ORL'}, {'id': 1909, 'name': 'Penza Oblast', 'state_code': 'PNZ'}, {'id': 1871, 'name': 'Perm Krai', 'state_code': 'PER'}, {'id': 1833, 'name': 'Primorsky Krai', 'state_code': 'PRI'}, {'id': 1863, 'name': 'Pskov Oblast', 'state_code': 'PSK'}, {'id': 1852, 'name': 'Republic of Adygea', 'state_code': 'AD'} 

Module Country

.info()

from countrydata import country

country = country.country_details('Spain')  #you can give your desired country
print(country.info()) 
# Returns the data present below in a dict

.name()

Returns the name of the country

from countrydata import country

country = country.country_details('Spain')
print(country.name()) 
India

.states()

Returns all available in a states list

from countrydata import country

country = country.country_details('Spain')
print(country.states()) 
['Andaman and Nicobar Islands', 'Andhra Pradesh', 'Arunachal Pradesh', 'Assam', 'Bihar', 'Chandigarh', 'Chhattisgarh', 'Dadra and Nagar Haveli', 'Daman and Diu', 'Delhi', 'Goa', 'Gujarat', 'Haryana', 'Himachal Pradesh', 'Jammu and Kashmir', 'Jharkhand', 'Karnataka', 'Kerala', 'Ladakh', 'Lakshadweep', 'Madhya Pradesh', 'Maharashtra', 'Manipur', 'Meghalaya', 'Mizoram', 'Nagaland', 'Odisha', 'Puducherry', 'Punjab', 'Rajasthan', 'Sikkim', 'Tamil Nadu', 'Telangana', 'Tripura', 
'Uttar Pradesh', 'Uttarakhand', 'West Bengal']

.cities()

Returns all available cities in a list

from countrydata import country

country = country.country_details('Spain')
print(country.cities()) 
# I am just displaying just a part of information here due to huge huge data
['Bamboo Flat', 'Nicobar', 'Port Blair', 'South Andaman', 'Addanki', 'Ādoni', 'Akasahebpet', 'Akivīdu', 'Akkarampalle', 'Amalāpuram', 'Amudālavalasa', 'Anakāpalle', 'Anantapur', 'Atmakūr', 'Attili', 'Avanigadda', 'Badvel', 'Banganapalle', 'Bāpatla', 'Betamcherla', 'Bhattiprolu', 'Bhīmavaram', 'Bhīmunipatnam', 'Bobbili', 'Challapalle', 'Chemmumiahpet', 'Chilakalūrupet', 'Chinnachowk', 'Chīpurupalle', 'Chīrāla', 'Chittoor',  'Diguvametta', 'East Godāvari', 'Elamanchili', 'Puttaparthi', 'Puttūr', 'Rājahmundry',  'Takdah', 'Taki', 'Tamluk', 'Tarakeswar', 'Titagarh', 'Tufanganj', 'Tulin', 'Uchalan', 'Ula', 'Uluberia', 'Uttar Dinajpur district', 'Uttarpara Kotrung']

.states_and_cities()

Returns states and cities in a dict

from countrydata import country

country = country.country_details('Spain')
print(country.states_and_cities()) 
# I am just displaying just a part of information here due to huge huge data
[{'id': 142095, 'name': 'South 24 Parganas district', 'latitude': '22.16197000', 'longitude': '88.43170000'}, {'id': 142096, 'name': 'Srikhanda', 'latitude': '23.60000000', 'longitude': '88.08330000'}, {'id': 142097, 'name': 'Srirampur', 'latitude': '23.35000000', 'longitude': '88.12000000'}, {'id': 142098, 'name': 'Suri', 'latitude': '23.91666667', 'longitude': '87.53333333'}, {'id': 142099, 'name': 'Swarupnagar community development block', 'latitude': '22.83330000', 'longitude': '88.86670000'}, {'id': 142100, 'name': 'Takdah', 'latitude': '27.03330000', 'longitude': '88.36670000'}, ]}]

.iso()

Returns ISO codes for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.iso()) 
{'alpha2': 'IN', 'alpha3': 'IND'}

.alt_spellings()

Returns alternate spellings for the name of a specified country
from countrydata import country

country = country.country_details('Spain')
print(country.alt_spellings()) 
['IN', 'Bhārat', 'Republic of India', 'Bharat Ganrajya']

.area()

Returns area (km²) for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.area()) 
3287590

.borders()

Returns bordering countries (ISO3) for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.borders()) 
['AFG', 'BGD', 'BTN', 'MMR', 'CHN', 'NPL', 'PAK', 'LKA']

.capital()

Returns capital city for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.capital()) 
New Delhi

.calling_codes()

from countrydata import country

country = country.country_details('Spain')
print(country.calling_codes()) 
 ["91"]

.independence()

Returns independence year for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.independence()) 
1947

.currency()

Returns official currency for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.currency()) 
['INR']

.capital_latlng()

Returns capital city latitude and longitude for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.capital_latlng()) 
[28.614179, 77.202266]

.demonym()

Returns the demonyms for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.demonym()) 
Indian

.flag()

Returns SVG link of the official flag for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.flag()) 
Sorry there is no link for indain flag :(

.languages()

Returns all spoken languages for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.languages()) 
['Asami', 'Bengali', 'Gujarati', 'Hindi', 'Kannada', 'Malayalam', 'Marathi', 'Odia', 'Punjabi', 'Tamil', 'Telugu', 'Urdu', 'Sanskrit', 'English', 'Konkani', 'Nepali', 'Bodo', 'Kashmiri', 'Maithili', 'Santali', 'Sindhi']

.latlng()

Returns approx latitude and longitude for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.latlng()) 
 [20, 77]

.native_name()

Returns the name of the country in its native tongue

from countrydata import country

country = country.country_details('Spain')
print(country.native_name()) 
भारत

.population()

Returns the population of the specified country

from countrydata import country

country = country.country_details('Spain')
print(country.population()) 
1263930000

.timezones()

Returns the timezones of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.timezones()) 
['UTC+05:30']

.tld()

Returns the domain extension of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.tld()) 
['.in']

.translations()

Returns translations of a given country

from countrydata import country

country = country.country_details('Spain')
print(country.translations()) 
{'de': 'Indien', 'es': 'India', 'fr': 'Inde', 'ja': 'インド', 'it': 'India'}

.continent()

Returns the continent of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.continent()) 
Asia

.temperature()

Returns the average temperature for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.temperature()) 
23.65

.government()

Returns the type of government for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.government()) 
Federal Republic

.expectancy()

Returns the life expectancy of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.expectancy()) 
62.5

.dish()

Returns the national dish of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.dish()) 
No officially announced national dish

.symbol()

Returns the national symbol of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.symbol()) 
animal

.density()

Returns the density of a specified country in sq km

from countrydata import country

country = country.country_details('Spain')
print(country.density()) 
454.9380726

.region()

Returns the region of a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.region()) 
Southern and Central Asia

.religion()

Returns the religion of the specified country

from countrydata import country

country = country.country_details('Spain')
print(country.religion()) 
Hinduism

.total_states()

Returns the total number of states for the specified country

from countrydata import country

country = country.country_details('Spain')
print(country.total_states()) 
37 #including union territories

.total_cities()

Return total numnber of cities for the specified country

from countrydata import country

country = country.country_details('Spain')
print(country.total_cities()) 
3865

.wiki()

Returns the Wikipedia page link for the specified country

from countrydata import country

country = country.country_details('Spain')
print(country.wiki()) 
http://en.wikipedia.org/wiki/india

.all()

Returns the every available data of all the countries in the world

from countrydata import country

country = country.country_details()
print(country.all()) 
# I am not displaying the output here as the data is enormous. You can try it yourself :)

.geo_json()

Returns geoJSON for a specified country

from countrydata import country

country = country.country_details('Spain')
print(country.geo_json()) 
{
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "id": "IND",
                "properties": {
                    "name": "India"
                },
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                77.837451,
                                35.49401
                            ],
                            [
                                78.912269,
                                34.321936
                            ],
                            [
                                78.811086,
                                33.506198
                            ],
                            [
                                77.837451,
                                35.49401
                            ]
                        ]
                    ]
                }
            }
        ]
    },

License

This project is licensed under the MIT License.

Maintained By Me

Update sponsored by PornoReino

Originally created by Manumanoj

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

countrydata-1.0.6.tar.gz (3.3 MB view hashes)

Uploaded Source

Built Distribution

countrydata-1.0.6-py3-none-any.whl (7.1 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page