rssilva_22 Postado Novembro 23, 2022 Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Novembro 23, 2022 Pessoal da TecnoSpeed Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
rssilva_22 Postado Novembro 23, 2022 Autor(a) Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Novembro 23, 2022 Pessoal da TecnoSpeed Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
rssilva_22 Postado Novembro 23, 2022 Autor(a) Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Novembro 23, 2022 Pessoal da TecnoSpeed Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
rssilva_22 Postado Novembro 23, 2022 Autor(a) Compartilhar Postado Novembro 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 Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
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.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.