Mysql PHP Programação Python
Mysql com C/Lazarus/Python/PHP/R – Parte 4

Neste penultimo artigo, mostrarei como ler JSON com mysql.

Para não me repetir, pois já apresentei isso anteriormente, no artigo abaixo:

http://maurinsoft.com.br/index.php/2019/03/09/usar-o-mysql-com-python/
Usando mysql diretamente com python.

Resolvi fazer diferente.

No artigo de PHP, mostrei um web service, que consumi com AngularJS/BootStrap:

http://maurinsoft.com.br/index.php/2022/02/04/mysql-com-c-lazarus-python-php-r-parte-3/

Agora neste artigo, vou consumir tambem o web service.

GIT do Projeto

https://github.com/marcelomaurin/PythonJS

Exemplo do Código

Client WebService

Neste exemplo, consumimos o web service, onde recebemos o JSON.

import requests
import codecs
import json

api_url = "http://maurinsoft.com.br/exemplos/phpmysql/ws/Pessoa.php"
response = requests.get(api_url)
response.headers['content-type']
#response.encoding
#response.text
#print(response.text)
#response.text.encode('utf-8-sig','ignore')
#print(response);
info = ""
if(response.text!={}):
    dados = codecs.decode(response.text.encode(),'utf-8-sig')
    js = json.loads(dados)
    print(js)
    #print(js.count())

Usando PANDAS

Neste segundo exemplo, podemos verificar uma ligeira diferença, pois estamos convertendo os dados para Pandas. ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

from urllib.request import urlopen
import json
import pandas as pd

response = urlopen("http://maurinsoft.com.br/exemplos/phpmysql/ws/Pessoa.php")
json_data = response.read().decode('utf-8-sig', 'replace')

d = json.loads(json_data)
df = pd.json_normalize(d[0])

print(df)

Espero ter auxiliado os amigos, neste interessante artigo.

Artigos relacionados

    IA pós graduação Python
    Uso de Pandas com Python

    Instalação do Pandas

    O processo de instalação é bem simples.

    Basta entrar como su, e dar o seguinte comando:

    pip3 install pandas

    Segue o vídeo do processo.

    Outro processo que pode ser usado é pelo apt

    apt install python3-pandas python3-pandas-lib

    Nada disso funcionou e agora?

    Não se preocupe entre no seu jupyter, e digite o seguinte comando:

    import sys

    print(sys.executable)

    Ele deve retornar um caminho no meu caso, foi:

    /snap/jupyter/6/bin/python

    Dai pegue esse caminho e instale

    /snap/jupyter/6/bin/python pip install pandas –user

    Tenho certeza que pelo menos uma destas técnicas irão funcionar com vc.

    Definições

    Series são arrays “unidimencional”

    DataFrame são tabelas.

    Criando uma Serie

    Neste exemplo estarei mostrando como criar uma serie no pandas.

    import pandas as pan
    
    sr = pan.Series(['ele1','ele2','ele3'])
    
    print(sr)

    Resultado esperado:

    0    ele1
    1    ele2
    2    ele3
    dtype: object

    Usando um dicionário

    Usaremos uma série associado ao dicionario.

    import pandas as pan
    
    dic = {1:'elem1', 2:'elem2',3:'elem3'}
    sr = pan.Series(dic)
    
    print(sr)

    O resultado esperado é como aparece a seguir:

    1    elem1
    2    elem2
    3    elem3
    dtype: object

    Criando um DataFrame

    Exemplo de criação de um dataframe

    import pandas as pan
    
    df1 = pan.DataFrame([[1,'item1','true'],[2,'item2','false'],[3,'item3','true']],columns=['ind','item','cond'])
    print(df1)

    Ao rodar esse exemplo fica conforme apresentado.

       ind   item   cond
    0    1  item1   true
    1    2  item2  false
    2    3  item3   true

    Como ler um arquivo no Pandas e concatenar arquivos.

    import pandas as pd
    
    df2 = pd.read_csv("2021-02-gasolina-etanol.csv",delimiter=";")
    
    df3 = pd.read_csv("2021-03-gasolina-etanol.csv",delimiter=";")
    
    df4 = pd.read_csv("2021-04-gasolina-etanol.csv",delimiter=";")
    
    df5 = pd.read_csv("2021-05-gasolina-etanol-1.csv",delimiter=";")
    
    df6 = pd.read_csv("2021-06-gasolina-etanol.csv",delimiter=";")
    
    df7 = pd.read_csv("2021-07-gasolina-etanol.csv",delimiter=";")
    
    frames = [df2,df3,df4,df5,df6,df7]
    
    df = pd.concat(frames, sort=False)
    
    print(df)

    Gravando um DataFrame em disco

    Para gravar um dataframe, usa-se a seguinte sintaxe:

    
    df.to_csv("gasolina-etanol.csv",sep=';', encoding='utf-8')
    
    dftotal = pd.read_csv("gasolina-etanol.csv",delimiter=";")

    Comprimindo arquivo durante a gravação

    Para gravar arquivos que voce processou em um dataframe, use a sintaxe abaixo.

    df.to_csv("gasolina-etanol.cvs.gzip", sep=';', index=False,  encoding='utf-8', compression='gzip')

    Lendo arquivos comprimidos

    No exemplo a cima, gravamos um arquivo comprimido, agora iremos lê-lo.

    dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')
    print(dftotal)

    Vendo colunas do DataFrame

    Aqui iremos mostrar como visualizar as colunas de um data frame carregado.

    import pandas as pd
    
    dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')
    
    dftotal.columns

    O resultado é como demonstrado.

    Index(['Região - Sigla', 'Estado - Sigla', 'Município', 'Revenda',
           'CNPJ da Revenda', 'Nome da Rua', 'Número Rua', 'Complemento', 'Bairro',
           'Cep', 'Produto', 'Data da Coleta', 'Valor de Venda', 'Valor de Compra',
           'Unidade de Medida', 'Bandeira'],
          dtype='object')

    Seguindo o exemplo anterior, a visualização dos dados da Região – Sigla, fica conforme apresentado.

    dftotal['Região - Sigla']

    Apresentando um resultado, conforme indicado:

    0          N
    1          N
    2          N
    3          N
    4          N
              ..
    251415    SE
    251416    SE
    251417    SE
    251418    SE
    251419    SE
    Name: Região - Sigla, Length: 251420, dtype: object

    HEAD de data frame

    A função head, mostra o cabeçalho das funções, conforme apresentado a seguir.

    dftotal.head()

    O exemplo apresenta um resultado conforme apresentado a seguir.

    	Região - Sigla	Estado - Sigla	Município	Revenda	CNPJ da Revenda	Nome da Rua	Número Rua	Complemento	Bairro	Cep	Produto	Data da Coleta	Valor de Venda	Valor de Compra	Unidade de Medida	Bandeira
    0	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
    1	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	ETANOL	02/02/2021	4,09	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
    2	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
    3	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
    4	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA	02/02/2021	5,22	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.

    Média de preço do data frame

    No exemplo a seguir usaremos uma média do campo Valor de Venda.

    dftotal.mean()
    
    #ou apenas em uma coluna
    
    dftotal['Valor de Venda'].mean()

    Contagem de elementos de uma coluna do data frame

    dftotal['Data da Coleta'].value_counts()

    O resultado fica conforme apresentado, a seguir:

    02/06/2021    5882
    01/06/2021    5230
    05/07/2021    3489
    09/06/2021    3420
    15/06/2021    3306
                  ...
    25/06/2021      16
    21/05/2021      15
    07/05/2021      15
    18/06/2021      10
    26/03/2021       3
    Name: Data da Coleta, Length: 150, dtype: int64

    Ordenando um Data Frame

    dfordenado = dftotal.sort_values(by='Data da Coleta')
    
    dfordenado['Data da Coleta']

    Ficando o resultado, conforme apresentado a seguir:

    
    3836      01/02/2021
    3173      01/02/2021
    3174      01/02/2021
    3175      01/02/2021
    3176      01/02/2021
                 ...
    148518    31/05/2021
    148517    31/05/2021
    148516    31/05/2021
    148514    31/05/2021
    148524    31/05/2021

    As informações acima, estão contidas no repositório do GIT.

    https://github.com/marcelomaurin/Analise-de-Preco

    Artigos relacionados

    maurinsoft.com.br