Microservice that fetches data from REST repository endpoints on Github
The two functions you broke out (LanguagesCounter, and RepoListLanguages) both could be simplified significantly using list comprehension. You seem to be thinking in terms of loops and appending to lists instead of generating them in one go which is more pythonic. Add in the Counter function from collections and RepoListLanguages becomes a relatively trivial one liner.
Those are both at the top of the rewrite below so you can see them in action.
Beyond that, the only real changes I made were using lower_camel_case per pep8 guidelines, changing a few variable names for clarity, and pulling the messy code at the bottom into functions. Functions and clear structure make reading the code much easier for anyone who needs to even if they don't change how it works.
import urllib.request, urllib.parse, urllib.error
import json
import sys
from collections import Counter
from datetime import datetime, timedelta, date
from tabulate import tabulate

from collections import Counter


def language_counter(data):
     return Counter(repo[&quot;language&quot;] for repo in data[&quot;items&quot;])


def repo_languages(data, list):
    return {
        key: [
            repo[&quot;html_url&quot;] for repo in data[&quot;items&quot;]
            if key == repo[&quot;language&quot;]
        ]
        for key in list
    }


def new_url():
    last_month = datetime.date(datetime.now()) - timedelta(days=30)

    return 'https://api.github.com/search/repositories?q=created:%3E' + last_month.isoformat(
    ) + '&amp;sort=stars&amp;order=desc&amp;page=1&amp;per_page=100'


def get_data(url):
    data_connection_request = urllib.request.urlopen(url)

    unicoded_data = data_connection_request.read().decode()

    try:
            json_data = json.loads(unicoded_data)
    except:
            json_data = None

    return json_data


def validate_or_quit(json_data):
    if not json_data or json_data[&quot;total_count&quot;] &lt; 1:
        print(json_data)
        sys.exit('######## Failure To Retrieve ########')


def pretty_print_list(data):
    for key in data:
        print(key, ' language used in')
        for _, item in enumerate(data[key]):
            print(&quot; &quot; * 27, item)


def pretty_print_dict(data):
    data_list = [[key, value] for key, value in data.items()]
    print(
            tabulate(
                    data_list,
                    headers=('Language', 'number of Repo using it'),
                    tablefmt=&quot;grid&quot;)
    )


if __name__ == &quot;__main__&quot;:
    json_data = get_data(new_url())
    validate_or_quit(json_data)

    lang_counts = language_counter(json_data)
    repo_langs = repo_languages(json_data, lang_counts)

    pretty_print_list(repo_langs)
    pretty_print_dict(lang_counts)