rssilva_22 Posted November 23, 2022 Share Posted November 23, 2022 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 1 Link to comment Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted November 23, 2022 Pessoal da TecnoSpeed Share Posted November 23, 2022 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. Espero que seja isso que deseja, caso contrario estou a disposição para lhe ajudar. 👍 Link to comment Share on other sites More sharing options...
rssilva_22 Posted November 23, 2022 Author Share Posted November 23, 2022 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. 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. Link to comment Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted November 23, 2022 Pessoal da TecnoSpeed Share Posted November 23, 2022 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. 1 Link to comment Share on other sites More sharing options...
rssilva_22 Posted November 23, 2022 Author Share Posted November 23, 2022 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 Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted November 23, 2022 Pessoal da TecnoSpeed Share Posted November 23, 2022 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 Share on other sites More sharing options...
rssilva_22 Posted November 23, 2022 Author Share Posted November 23, 2022 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 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now