Jump to content

Criar um script em pyton para chamar api que preencha o paramentro Start_date de forma automatica


rssilva_22

Postagens Recomendadas

Prezados,  boa tarde.

Sou novo em pyton, estou aprendendo. A dúvida pode parecer simples, mas estou alguns dias tentando sem sucesso.

 

Preciso acessar um API:  https://api.xxxxx.com.br/sale-report/v1/reports

Ela pede usuário e senha

Ela pede obrigatoriamente o parâmetro start_date no formato aaaa-mm-dd, o que faria a chamada ficar assim: https://api.xxxxx.com.br/sale-report/v1/reports?start_date=2022-11-22

 

Gostaria de criar um código em pyton que quando eu executar o arquivo *.py ele entenda que a data deve ser 7 dias antes, sem eu precisar colocar a data no código. Exemplo: executando o código hoje (23/11/2022) ele deveria chamar a data 16/11/2022.

Também gostaria que ele salvasse um arquivo *.json em uma pasta no computador.

 

Alguém tem algum código que faz isso e poderia compartilhar

 

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Olá @rssilva_22 tudo bem ? 

Uma maneira simples de realizar isso é inserindo o seguinte no seu código.

# Caso não tenha a biblioteca só executar pip install datetime
from datetime import date
from datetime import timedelta 

data = date.today() - timedelta(days=7)

O date.today( ) lhe trará a data de hoje no formato date, e o time delta é usado para diminuir 7 dias da data. 

O formato da variável é date, portanto caso gere algum erro basta converte-la para string que ficara no formato desejado. 

image.png

Espero que seja isso que deseja, caso contrario estou a disposição para lhe ajudar. 👍

Link to comment
Compartilhe em outros sites

37 minutos atrás, Thanael disse:

Olá @rssilva_22 tudo bem ? 

Uma maneira simples de realizar isso é inserindo o seguinte no seu código.

# Caso não tenha a biblioteca só executar pip install datetime
from datetime import date
from datetime import timedelta 

data = date.today() - timedelta(days=7)

O date.today( ) lhe trará a data de hoje no formato date, e o time delta é usado para diminuir 7 dias da data. 

O formato da variável é date, portanto caso gere algum erro basta converte-la para string que ficara no formato desejado. 

image.png

Espero que seja isso que deseja, caso contrario estou a disposição para lhe ajudar. 👍

Thanael, obrigado pela ajuda.

Eu parei aqui.

Como eu faço para chamar a data na requisição ?

no parâmetro eu digitei "2022-11-22" por não saber como colocar a variável nela.

image.png

Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Olá tu pode ajustar o link da api desta forma

f"https://api.**********.com.br/sale-report/v1/reports?start_date={data}"

Desta forma o python saberá que onde está {data} ele deve colocar o valor armazenado na variável data.

  • Curtir 1
Link to comment
Compartilhe em outros sites

28 minutos atrás, Thanael disse:

Olá tu pode ajustar o link da api desta forma

f"https://api.**********.com.br/sale-report/v1/reports?start_date={data}"

Desta forma o python saberá que onde está {data} ele deve colocar o valor armazenado na variável data.

Thanael, muito obrigado.

Consegui fazer a requisição.

Se eu quiser fazer uma saída, salvar o resultado em um arquivo no formato json (ex. extract.json), como eu faço ?

 

O código que você orientou a construir e funcionou ficou assim:

 

import requests
import json
from datetime import date
from datetime import timedelta

data = date.today() - timedelta(days=7)

def buscar_dados():
    request = requests.get(
        f"https://api.******.com.br/sale-report/v1/reports?start_date={data}",auth =('**********','**********'))

    todos = json.loads(request.content)
    print(todos)
    print(todos[0]['extract'])

if __name__ == '__main__':
    buscar_dados()

Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Opa, que ótimo que funcionou, agora para salvar esse resultado vindo do request em um arquivo json, existem alguns meios, sugiro você dar uma olhada neste artigo.

Trabalhando com JSON no Python

No artigo tem uma parte que ele explica sobre load e loads, acredito que seja bem aquilo que tu precisa.

"E o método loads, assim como o dumps, é para lidar com JSON em formato de string. No caso do loads, transformar uma string em um objeto Python."

Acredito que lendo esse artigo tu consiga realizar isso, caso contrario me avisa que procuro outra forma de lhe ajudar ou até mesmo posso mandar um exemplo de código em últimos casos. 👍

Link to comment
Compartilhe em outros sites

2 minutos atrás, Thanael disse:

Opa, que ótimo que funcionou, agora para salvar esse resultado vindo do request em um arquivo json, existem alguns meios, sugiro você dar uma olhada neste artigo.

Trabalhando com JSON no Python

No artigo tem uma parte que ele explica sobre load e loads, acredito que seja bem aquilo que tu precisa.

"E o método loads, assim como o dumps, é para lidar com JSON em formato de string. No caso do loads, transformar uma string em um objeto Python."

Acredito que lendo esse artigo tu consiga realizar isso, caso contrario me avisa que procuro outra forma de lhe ajudar ou até mesmo posso mandar um exemplo de código em últimos casos. 👍

Obrigado pela ajuda @Thanael

Obrigado pela ajuda @Thanael

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...