In [1]:
# Import

import requests
from pprint import pprint
In [2]:
# Constants

term = "Sappho"
In [3]:
r = requests.get('{}'.format(term))

# To do: Use this format
# r = requests.get('', auth=('user', 'pass'))
In [4]:
# Get json from API

wikijson = r.json()
In [5]:
# Print example

print("This is what the raw json looks like:")
This is what the raw json looks like:
{'batchcomplete': '',
 'query': {'pages': {'27784': {'langlinks': [{'*': 'Sapfo', 'lang': 'af'},
                                             {'*': 'Safo', 'lang': 'an'},
                                             {'*': 'صافو', 'lang': 'ar'},
                                             {'*': 'سابفو', 'lang': 'arz'},
                                             {'*': 'Safo', 'lang': 'ast'},
                                             {'*': 'Sappho', 'lang': 'bar'},
                                             {'*': 'Sapfo', 'lang': 'bat-smg'},
                                             {'*': 'Sappho', 'lang': 'bcl'},
                                             {'*': 'Сапфо', 'lang': 'be'},
                                             {'*': 'Сапфо', 'lang': 'be-x-old'},
                                             {'*': 'Сафо', 'lang': 'bg'},
                                             {'*': 'স্যাফো', 'lang': 'bn'},
                                             {'*': 'Sapfo', 'lang': 'br'},
                                             {'*': 'Sappho', 'lang': 'bs'},
                                             {'*': 'Safo de Lesbos',
                                              'lang': 'ca'},
                                             {'*': 'سافۆ', 'lang': 'ckb'},
                                             {'*': 'Sapfó', 'lang': 'cs'},
                                             {'*': 'Sappho', 'lang': 'cy'},
                                             {'*': 'Sapfo', 'lang': 'da'},
                                             {'*': 'Sappho', 'lang': 'de'},
                                             {'*': 'Safo', 'lang': 'diq'},
                                             {'*': 'Σαπφώ', 'lang': 'el'},
                                             {'*': 'Sapfo', 'lang': 'eo'},
                                             {'*': 'Safo de Mitilene',
                                              'lang': 'es'},
                                             {'*': 'Sappho', 'lang': 'et'},
                                             {'*': 'Safo', 'lang': 'eu'},
                                             {'*': 'Safu', 'lang': 'ext'},
                                             {'*': 'سافو', 'lang': 'fa'},
                                             {'*': 'Sapfo', 'lang': 'fi'},
                                             {'*': 'Sapfo', 'lang': 'fo'},
                                             {'*': 'Sappho', 'lang': 'fr'},
                                             {'*': 'Sapfo', 'lang': 'fy'},
                                             {'*': 'Safó', 'lang': 'ga'},
                                             {'*': 'Sappho', 'lang': 'gd'},
                                             {'*': 'Safo', 'lang': 'gl'},
                                             {'*': 'סאפפו', 'lang': 'he'},
                                             {'*': 'साफ़ो', 'lang': 'hi'},
                                             {'*': 'Sappho', 'lang': 'hif'},
                                             {'*': 'Sapfa', 'lang': 'hr'},
                                             {'*': 'Szapphó', 'lang': 'hu'},
                                             {'*': 'Սապփո', 'lang': 'hy'},
                                             {'*': 'Sappho', 'lang': 'ia'},
                                             {'*': 'Sapfo', 'lang': 'id'},
                                             {'*': 'Sapfo', 'lang': 'io'},
                                             {'*': 'Saffó', 'lang': 'is'},
                                             {'*': 'Saffo', 'lang': 'it'},
                                             {'*': 'サッポー', 'lang': 'ja'},
                                             {'*': 'Sappho', 'lang': 'jv'},
                                             {'*': 'საფო', 'lang': 'ka'},
                                             {'*': '사포 (시인)', 'lang': 'ko'},
                                             {'*': 'Sappho', 'lang': 'la'},
                                             {'*': 'Saffo', 'lang': 'lij'},
                                             {'*': 'Sapfo', 'lang': 'lt'},
                                             {'*': 'Sapfo', 'lang': 'lv'},
                                             {'*': 'Sappho', 'lang': 'mg'},
                                             {'*': 'Сафо', 'lang': 'mk'},
                                             {'*': 'സാഫോ', 'lang': 'ml'},
                                             {'*': 'Сапфо', 'lang': 'mn'},
                                             {'*': 'साफो', 'lang': 'mr'},
                                             {'*': 'Safo', 'lang': 'mwl'},
                                             {'*': 'ဆက်ဖို', 'lang': 'my'},
                                             {'*': 'Safo', 'lang': 'nah'},
                                             {'*': 'Sappho', 'lang': 'nds'},
                                             {'*': 'सफो', 'lang': 'new'},
                                             {'*': 'Sappho', 'lang': 'nl'},
                                             {'*': 'Sapfo', 'lang': 'nn'},
                                             {'*': 'Sapfo', 'lang': 'no'},
                                             {'*': 'Safo', 'lang': 'oc'},
                                             {'*': 'Safona', 'lang': 'pl'},
                                             {'*': 'Safo', 'lang': 'pms'},
                                             {'*': 'سیفو', 'lang': 'pnb'},
                                             {'*': 'Safo', 'lang': 'pt'},
                                             {'*': 'Sappho', 'lang': 'ro'},
                                             {'*': 'Сапфо', 'lang': 'ru'},
                                             {'*': 'Saffu', 'lang': 'scn'},
                                             {'*': 'Sappho', 'lang': 'sco'},
                                             {'*': 'Sappho', 'lang': 'sh'},
                                             {'*': 'Sappho', 'lang': 'simple'},
                                             {'*': 'Sapfo', 'lang': 'sk'},
                                             {'*': 'Sapfo', 'lang': 'sl'},
                                             {'*': 'Сапфа', 'lang': 'sr'},
                                             {'*': 'Sapfo', 'lang': 'sv'},
                                             {'*': 'Sappho', 'lang': 'sw'},
                                             {'*': 'Safůna', 'lang': 'szl'},
                                             {'*': 'சாஃபோ', 'lang': 'ta'},
                                             {'*': 'Сапфо', 'lang': 'tg'},
                                             {'*': 'Sappho', 'lang': 'tl'},
                                             {'*': 'Sapfo', 'lang': 'tr'},
                                             {'*': 'Сапфо', 'lang': 'uk'},
                                             {'*': 'صافو', 'lang': 'ur'},
                                             {'*': 'Sappho', 'lang': 'vi'},
                                             {'*': 'Sappho', 'lang': 'vo'},
                                             {'*': 'Sappho', 'lang': 'war'},
                                             {'*': '莎孚', 'lang': 'zh'},
                                             {'*': 'Sappho',
                                              'lang': 'zh-min-nan'},
                                             {'*': '莎孚', 'lang': 'zh-yue'}],
                               'ns': 0,
                               'pageid': 27784,
                               'title': 'Sappho'}}}}
In [6]:
# Function to get value of arbitrarilty nested json key
# cf.

def get_all(data, key):
    sub_iter = []
    if isinstance(data, dict):
        if key in data:
            yield data[key]
        sub_iter = data.values()
    if isinstance(data, list):
        sub_iter = data
    for x in sub_iter:
        for y in get_all(x, key):
            yield y
In [7]:
# Get all langlinks and put them into a tuple

langs = next(get_all(wikijson, 'langlinks'))

lang_vars = []

# Append English term!
lang_vars.append(('en', term))

for item in langs:
    k = item['lang']
    v = item['*']
    lang_vars.append((k, v))
In [8]:
# Print output

print('{} appears {} different languages in Wikipedia.'.format(term, len(lang_vars)))
Sappho appears 97 different languages in Wikipedia.
[('af', 'Sapfo'), ('an', 'Safo'), ('ar', 'صافو'), ('arz', 'سابفو'), ('ast', 'Safo'), ('bar', 'Sappho'), ('bat-smg', 'Sapfo'), ('bcl', 'Sappho'), ('be', 'Сапфо'), ('be-x-old', 'Сапфо'), ('bg', 'Сафо'), ('bn', 'স্যাফো'), ('br', 'Sapfo'), ('bs', 'Sappho'), ('ca', 'Safo de Lesbos'), ('ckb', 'سافۆ'), ('cs', 'Sapfó'), ('cy', 'Sappho'), ('da', 'Sapfo'), ('de', 'Sappho'), ('diq', 'Safo'), ('el', 'Σαπφώ'), ('en', 'Sappho'), ('eo', 'Sapfo'), ('es', 'Safo de Mitilene'), ('et', 'Sappho'), ('eu', 'Safo'), ('ext', 'Safu'), ('fa', 'سافو'), ('fi', 'Sapfo'), ('fo', 'Sapfo'), ('fr', 'Sappho'), ('fy', 'Sapfo'), ('ga', 'Safó'), ('gd', 'Sappho'), ('gl', 'Safo'), ('he', 'סאפפו'), ('hi', 'साफ़ो'), ('hif', 'Sappho'), ('hr', 'Sapfa'), ('hu', 'Szapphó'), ('hy', 'Սապփո'), ('ia', 'Sappho'), ('id', 'Sapfo'), ('io', 'Sapfo'), ('is', 'Saffó'), ('it', 'Saffo'), ('ja', 'サッポー'), ('jv', 'Sappho'), ('ka', 'საფო'), ('ko', '사포 (시인)'), ('la', 'Sappho'), ('lij', 'Saffo'), ('lt', 'Sapfo'), ('lv', 'Sapfo'), ('mg', 'Sappho'), ('mk', 'Сафо'), ('ml', 'സാഫോ'), ('mn', 'Сапфо'), ('mr', 'साफो'), ('mwl', 'Safo'), ('my', 'ဆက်ဖို'), ('nah', 'Safo'), ('nds', 'Sappho'), ('new', 'सफो'), ('nl', 'Sappho'), ('nn', 'Sapfo'), ('no', 'Sapfo'), ('oc', 'Safo'), ('pl', 'Safona'), ('pms', 'Safo'), ('pnb', 'سیفو'), ('pt', 'Safo'), ('ro', 'Sappho'), ('ru', 'Сапфо'), ('scn', 'Saffu'), ('sco', 'Sappho'), ('sh', 'Sappho'), ('simple', 'Sappho'), ('sk', 'Sapfo'), ('sl', 'Sapfo'), ('sr', 'Сапфа'), ('sv', 'Sapfo'), ('sw', 'Sappho'), ('szl', 'Safůna'), ('ta', 'சாஃபோ'), ('tg', 'Сапфо'), ('tl', 'Sappho'), ('tr', 'Sapfo'), ('uk', 'Сапфо'), ('ur', 'صافو'), ('vi', 'Sappho'), ('vo', 'Sappho'), ('war', 'Sappho'), ('zh', '莎孚'), ('zh-min-nan', 'Sappho'), ('zh-yue', '莎孚')]