import json
import requests
impostos = requests.get("http://localhost:5000/api/v1/receita/total?code=1.1.1&years=2014&drilldown=true").content
#taxas = requests.get("http://localhost:5000/api/v1/receita/total?code=1.1.2&years=2014&drilldown=true").content
impostos_dict = json.loads(impostos)
#taxas_dict = json.loads(taxas)
impostos_dict
{u'data': [{u'code': u'111.2', u'name': u'Impostos sobre o Patrim\xf4nio e a Renda', u'value': 8523435078.62}, {u'code': u'111.3', u'name': u'Impostos sobre a Produ\xe7\xe3o e a Circula\xe7\xe3o', u'value': 11045723056.56}], u'name': u'Total Outcome'}
def create_treemap(code, name=''):
api_request_data = requests.get("http://localhost:5000/api/v1/receita/total?code={}&years=2014&drilldown=true".format(code)).content
treemap = {}
treemap['name'] = name
treemap['children'] = []
request_dict = json.loads(api_request_data)
for child in request_dict['data']:
if code.count('.') < 3:
treemap['children'] += [create_treemap(child['code'], child['name'])]
else:
if float(child['value']) != 0:
treemap['children'] += [{'name': child['name'], 'value': child['value']}]
return treemap
i = create_treemap('112', name='Taxas')
i
{'children': [{'children': [{'children': [{'children': [{'name': u'TAXA DE ESTUDOS P/ FIXA\xc7\xc3O DE DIRETRIZES', 'value': 1052879.79}], 'name': u'TAXA DE CONSERVA\xc7\xc3O DE VIAS E LOGRADOUROS P\xdaBLICOS'}, {'children': [{'name': u'TAXA DE ESTUDOS P/ FIXA\xc7\xc3O DE DIRETRIZES', 'value': 1052879.79}], 'name': u'TAXA DE COMBATE A SINISTROS'}, {'children': [{'name': u'TAXA DE ESTUDOS P/ FIXA\xc7\xc3O DE DIRETRIZES', 'value': 1052879.79}], 'name': u'TAXA DE ESTUDOS P/ FIXA\xc7\xc3O DE DIRETRIZES'}], 'name': u'Outras Taxas pela Presta\xe7\xe3o de Servi\xe7os'}, {'children': [{'children': [{'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DOMICILIARES - TRSD', 'value': 25594.45}, {'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DE SERVI\xc7OS DE SA\xdaDE - TRSS', 'value': 47193031.85}], 'name': u'TAXA DE LIMPEZA P\xdaBLICA'}, {'children': [{'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DOMICILIARES - TRSD', 'value': 25594.45}, {'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DE SERVI\xc7OS DE SA\xdaDE - TRSS', 'value': 47193031.85}], 'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DOMICILIARES - TRSD'}, {'children': [{'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DOMICILIARES - TRSD', 'value': 25594.45}, {'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DE SERVI\xc7OS DE SA\xdaDE - TRSS', 'value': 47193031.85}], 'name': u'TAXA DE RES\xcdDUOS S\xd3LIDOS DE SERVI\xc7OS DE SA\xdaDE - TRSS'}], 'name': u'Taxa de Limpeza P\xfablica'}], 'name': u'Taxas pela Presta\xe7\xe3o de Servi\xe7os'}, {'children': [{'children': [{'children': [{'name': u'TAXA DE VISTORIA DE APARELHOS DE TRANSPORTE VERTICAL E HORIZONTAL', 'value': 8847031.77}], 'name': u'TAXA DE VISTORIA DE APARELHOS DE TRANSPORTE VERTICAL E HORIZONTAL'}], 'name': u'Taxa de Fiscaliza\xe7\xe3o de Aparelhos de Transporte'}, {'children': [{'children': [{'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS', 'value': 236.38}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB', 'value': 1327735.29}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS', 'value': 1528236.82}, {'name': u'TAXA DE REMO\xc7\xc3O - CET', 'value': 7934912.63}], 'name': u'TAXA DE LICEN\xc7A P/ TR\xc1FEGO DE VE\xcdCULOS'}, {'children': [{'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS', 'value': 236.38}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB', 'value': 1327735.29}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS', 'value': 1528236.82}, {'name': u'TAXA DE REMO\xc7\xc3O - CET', 'value': 7934912.63}], 'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS'}, {'children': [{'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS', 'value': 236.38}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB', 'value': 1327735.29}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS', 'value': 1528236.82}, {'name': u'TAXA DE REMO\xc7\xc3O - CET', 'value': 7934912.63}], 'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB'}, {'children': [{'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS', 'value': 236.38}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB', 'value': 1327735.29}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS', 'value': 1528236.82}, {'name': u'TAXA DE REMO\xc7\xc3O - CET', 'value': 7934912.63}], 'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS'}, {'children': [{'name': u'TAXA DE LICEN\xc7A P/ ARRUAMENTOS E LOTEAMENTOS', 'value': 236.38}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DOS SERVI\xc7OS DE LIMPEZA URBANA - FISLURB', 'value': 1327735.29}, {'name': u'TAXA DE FISCALIZA\xc7\xc3O DE CEMIT\xc9RIOS', 'value': 1528236.82}, {'name': u'TAXA DE REMO\xc7\xc3O - CET', 'value': 7934912.63}], 'name': u'TAXA DE REMO\xc7\xc3O - CET'}], 'name': u'Outras Taxas pelo Exerc\xedcio do Poder de Pol\xedcia'}, {'children': [{'children': [{'name': u'TAXA DE FISCALIZA\xc7\xc3O DE AN\xdaNCIOS', 'value': 16850185.89}], 'name': u'TAXA DE FISCALIZA\xc7\xc3O DE AN\xdaNCIOS'}], 'name': u'Taxa de Publicidade Comercial'}, {'children': [{'children': [{'name': u'TAXA P/ EXAME E VERIFICA\xc7\xc3O DE PROJETOS E CONSTRU\xc7\xd5ES', 'value': 85610353.83}], 'name': u'TAXA P/ EXAME E VERIFICA\xc7\xc3O DE PROJETOS E CONSTRU\xc7\xd5ES'}], 'name': u'Taxa de Aprova\xe7\xe3o do Projeto de Contru\xe7\xe3o Civil'}, {'children': [{'children': [{'name': u'TAXA DE FISCALIZA\xc7\xc3O DE ESTABELECIMENTOS - TFE', 'value': 117461118.26}], 'name': u'TAXA DE LICEN\xc7A P/ LOCALIZA\xc7\xc3O, INSTALA\xc7\xc3O E FUNCIONAMENTO'}, {'children': [{'name': u'TAXA DE FISCALIZA\xc7\xc3O DE ESTABELECIMENTOS - TFE', 'value': 117461118.26}], 'name': u'TAXA DE VISTORIA DE NORMAS DE SEGURAN\xc7A'}, {'children': [{'name': u'TAXA DE FISCALIZA\xc7\xc3O DE ESTABELECIMENTOS - TFE', 'value': 117461118.26}], 'name': u'TAXA DE FISCALIZA\xc7\xc3O DE ESTABELECIMENTOS - TFE'}], 'name': u'Taxa de Licen\xe7a para Funcionamento de Estabelecimentos Comerciais, Ind\xfastria e Prestadora de Servi\xe7os'}], 'name': u'Taxas pelo Exerc\xedcio do Poder de Pol\xedcia'}], 'name': 'Taxas'}
imp_node = {}
imp_node['name'] = 'Impostos'
imp_node['children'] = []
fapi_request_data
treemap_taxas = {}
treemap_taxas['name'] = 'Taxas'
treemap_taxa['children'] = []
tax_node = {}
tax_node['name'] = 'Taxas'
tax_node['children'] = []
for tax_data in taxas_dict['data']:
value, name = tax_data.values()
tax_node['children'].append({'name': name, 'value': value})
treemap['children'] += [imp_node, tax_node]
out = json.dumps(i, encoding="utf-8", indent=2)
f = open('taxas.json', 'w+')
f.write(out)
f.close()
!cat receitas.json
{ "name": "Impostos", "children": [ { "name": "Impostos sobre o Patrim\u00f4nio e a Renda", "children": [ { "name": "Imposto sobre a Renda e Proventos de Qualquer Natureza", "children": [ { "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", "children": [ { "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", "value": 242223.02 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", "value": 226225681.79 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", "value": 984846685.99 } ] }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", "children": [ { "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", "value": 242223.02 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", "value": 226225681.79 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", "value": 984846685.99 } ] }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", "children": [ { "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", "value": 242223.02 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", "value": 226225681.79 }, { "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", "value": 984846685.99 } ] } ] }, { "name": "ITBI - Imposto sobre Transmiss\u00e3o \"Inter Vivos\" de Bens Im\u00f3veis e de Direitos Reais sobre Im\u00f3veis", "children": [ { "name": "IMPOSTO S/ TRANS. INTER-VIVOS DE BENS IM\u00d3VEIS E DIR. REAIS S/ IM\u00d3VEIS", "children": [ { "name": "IMPOSTO S/ TRANS. INTER-VIVOS DE BENS IM\u00d3VEIS E DIR. REAIS S/ IM\u00d3VEIS", "value": 1405961460.17 } ] } ] }, { "name": "IPTU - Imposto sobre a Propriedade Predial e Territorial Urbana", "children": [ { "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", "children": [ { "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", "value": 255386563.21 }, { "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", "value": 5650772464.44 } ] }, { "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", "children": [ { "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", "value": 255386563.21 }, { "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", "value": 5650772464.44 } ] } ] } ] }, { "name": "Impostos sobre a Produ\u00e7\u00e3o e a Circula\u00e7\u00e3o", "children": [ { "name": "IMPOSTO S/ VENDA A VAREJO DE COMBUST\u00cdVEIS L\u00cdQUIDOS E GASOSOS - IVV", "children": [ { "name": "IMPOSTO S/ VENDA A VAREJO DE COMBUST\u00cdVEIS L\u00cdQUIDOS E GASOSOS - IVV", "children": [] } ] }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "children": [ { "name": "ISS - CMSP", "children": [ { "name": "Adicional ISS - Fundo Municipal de Combate \u00e0 Pobreza", "value": 327653.07 }, { "name": "ISS - SIMPLES NACIONAL", "value": 924157539.39 }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "value": 10121237864.1 } ] }, { "name": "Adicional ISS - Fundo Municipal de Combate \u00e0 Pobreza", "children": [ { "name": "Adicional ISS - Fundo Municipal de Combate \u00e0 Pobreza", "value": 327653.07 }, { "name": "ISS - SIMPLES NACIONAL", "value": 924157539.39 }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "value": 10121237864.1 } ] }, { "name": "ISS - SIMPLES NACIONAL", "children": [ { "name": "Adicional ISS - Fundo Municipal de Combate \u00e0 Pobreza", "value": 327653.07 }, { "name": "ISS - SIMPLES NACIONAL", "value": 924157539.39 }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "value": 10121237864.1 } ] }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "children": [ { "name": "Adicional ISS - Fundo Municipal de Combate \u00e0 Pobreza", "value": 327653.07 }, { "name": "ISS - SIMPLES NACIONAL", "value": 924157539.39 }, { "name": "ISS - Imposto sobre Servi\u00e7os de Qualquer Natureza", "value": 10121237864.1 } ] } ] } ] } ] }
json.dumps(i, encoding="utf-8", indent=2)
'{\n "name": "Impostos", \n "children": [\n {\n "name": "Impostos sobre o Patrim\\u00f4nio e a Renda", \n "children": [\n {\n "name": "Imposto sobre a Renda e Proventos de Qualquer Natureza", \n "children": [\n {\n "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", \n "children": [\n {\n "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", \n "value": 242223.02\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", \n "value": 226225681.79\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", \n "value": 984846685.99\n }\n ]\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", \n "children": [\n {\n "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", \n "value": 242223.02\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", \n "value": 226225681.79\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", \n "value": 984846685.99\n }\n ]\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", \n "children": [\n {\n "name": "IMPOSTO DE RENDA RETIDO NAS FONTES S/ REMESSA DE RECURSOS AO EXTERIOR", \n "value": 242223.02\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre Outros Rendimentos", \n "value": 226225681.79\n }, \n {\n "name": "IRRF - Imposto de Renda Retido nas Fontes sobre os Rendimentos do Trabalho", \n "value": 984846685.99\n }\n ]\n }\n ]\n }, \n {\n "name": "ITBI - Imposto sobre Transmiss\\u00e3o \\"Inter Vivos\\" de Bens Im\\u00f3veis e de Direitos Reais sobre Im\\u00f3veis", \n "children": [\n {\n "name": "IMPOSTO S/ TRANS. INTER-VIVOS DE BENS IM\\u00d3VEIS E DIR. REAIS S/ IM\\u00d3VEIS", \n "children": [\n {\n "name": "IMPOSTO S/ TRANS. INTER-VIVOS DE BENS IM\\u00d3VEIS E DIR. REAIS S/ IM\\u00d3VEIS", \n "value": 1405961460.17\n }\n ]\n }\n ]\n }, \n {\n "name": "IPTU - Imposto sobre a Propriedade Predial e Territorial Urbana", \n "children": [\n {\n "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", \n "children": [\n {\n "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", \n "value": 255386563.21\n }, \n {\n "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", \n "value": 5650772464.44\n }\n ]\n }, \n {\n "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", \n "children": [\n {\n "name": "IMPOSTO S/ A PROPRIEDADE TERRITORIAL URBANA", \n "value": 255386563.21\n }, \n {\n "name": "IMPOSTO S/ A PROPRIEDADE PREDIAL", \n "value": 5650772464.44\n }\n ]\n }\n ]\n }\n ]\n }, \n {\n "name": "Impostos sobre a Produ\\u00e7\\u00e3o e a Circula\\u00e7\\u00e3o", \n "children": [\n {\n "name": "IMPOSTO S/ VENDA A VAREJO DE COMBUST\\u00cdVEIS L\\u00cdQUIDOS E GASOSOS - IVV", \n "children": [\n {\n "name": "IMPOSTO S/ VENDA A VAREJO DE COMBUST\\u00cdVEIS L\\u00cdQUIDOS E GASOSOS - IVV", \n "children": []\n }\n ]\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "children": [\n {\n "name": "ISS - CMSP", \n "children": [\n {\n "name": "ISS - CMSP", \n "value": 0.0\n }, \n {\n "name": "Adicional ISS - Fundo Municipal de Combate \\u00e0 Pobreza", \n "value": 327653.07\n }, \n {\n "name": "ISS - SIMPLES NACIONAL", \n "value": 924157539.39\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "value": 10121237864.1\n }\n ]\n }, \n {\n "name": "Adicional ISS - Fundo Municipal de Combate \\u00e0 Pobreza", \n "children": [\n {\n "name": "ISS - CMSP", \n "value": 0.0\n }, \n {\n "name": "Adicional ISS - Fundo Municipal de Combate \\u00e0 Pobreza", \n "value": 327653.07\n }, \n {\n "name": "ISS - SIMPLES NACIONAL", \n "value": 924157539.39\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "value": 10121237864.1\n }\n ]\n }, \n {\n "name": "ISS - SIMPLES NACIONAL", \n "children": [\n {\n "name": "ISS - CMSP", \n "value": 0.0\n }, \n {\n "name": "Adicional ISS - Fundo Municipal de Combate \\u00e0 Pobreza", \n "value": 327653.07\n }, \n {\n "name": "ISS - SIMPLES NACIONAL", \n "value": 924157539.39\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "value": 10121237864.1\n }\n ]\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "children": [\n {\n "name": "ISS - CMSP", \n "value": 0.0\n }, \n {\n "name": "Adicional ISS - Fundo Municipal de Combate \\u00e0 Pobreza", \n "value": 327653.07\n }, \n {\n "name": "ISS - SIMPLES NACIONAL", \n "value": 924157539.39\n }, \n {\n "name": "ISS - Imposto sobre Servi\\u00e7os de Qualquer Natureza", \n "value": 10121237864.1\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n}'
s = '1121...'
s.count('.')
3