Biblioteca para ler e consultar o banco de dados CNL (Código Nacional de Localidade) seguindo especificações da ANATEL (Agência Nacional de Telecomunicações).
pip install open-cnl
Você pode fazer o download do banco de dados atualizado do site da ANATEL e importar para um banco de dados SQLite3.
python -m open_cnl.open_cnl_importer ./cnl_anatel.sqlite3
from open_cnl.open_cnl_importer import OpenCNLImporter
open_cnl_importer = OpenCNLImporter('./cnl_anatel.sqlite3')
open_cnl_importer.importar_base()
Vamos utilizar como exemplo o telefone da prefeitura municipal de Natal/RN:
(84) 3211-8243. Veja este código no arquivo exemplo.py
.
from open_cnl.open_cnl import OpenCNL
# Inicializamos a classe que se
# conecta ao banco de dados
cnl = OpenCNL('./cnl_anatel.sqlite3')
# Pesquisando por um número de Natal/RN
localidade = cnl.pesquisar_localidade('843211', '8243')
Os dados retornados estarão num dicionário no seguinte formato:
{
'prestadora': u'TELEMAR NORTE LESTE S.A.',
'nome_da_localidade': u'NATAL',
'hemisferio': u'S',
'numero_da_faixa_final': u'8999',
'sigla_cnl_da_area_local': u'NTL',
'numero_da_faixa_inicial': u'8000',
'longitude': u'351232',
'prefixo': u'843211',
'codigo_da_area_de_tarifacao': u'842',
'latitude': u'547419',
'codigo_cnl': u'84000',
'sigla_uf': u'RN',
'nome_do_municipio': u'NATAL',
'sigla_cnl': u'NTL'
}
Caso uma localidade não seja encontrada será retornado o valor None
.
Na inicialização da classe podemos definir o parâmetro as_json
como True
.
O padrão desse argumento é False
e quando verdadeiro, permite que os dados
sejam retornados em uma string no formato JSON.
from open_cnl.open_cnl import OpenCNL
cnl = OpenCNL('./cnl_anatel.sqlite3')
cnl.pesquisar_localidade('843211', '8243', as_json=True)
Victor Torres [email protected]
- Stefan Yohansson [email protected]
- João Vitor Gomes [email protected]