Jump to content

Sou iniciante - Python é tão lento assim ??


jediael.reis

Postagens Recomendadas

Entrei esse mundo há 4 meses, e estou estudando e fazendo uma integração.

Sei que tenho pouco conhecimento, mas estou fazer algumas integrações já, mas deis de ontem estou brigando com o código...

Estou pegando as Apis do Google WorkSpace e fazendo com o ClassRoom..

Existe alguma forma de deixar mais rápido ?? peguei vários dados do Classroom e joguei no google Planilhas, mas isso demorou 3 horas e 40min e deu 10mil linhas.

qualquer coisa posso compartilhar um pedaço do codigo para voces compreenderem.

 

Obrigado  

 

 

 

Link to comment
Compartilhe em outros sites

from __future__ import print_function

from dis import dis

from email.charset import add_charset

from inspect import isdatadescriptor

 

import os.path

from tkinter import ACTIVE

from turtle import st

from autenticação import Autenticacao

from google.auth.transport.requests import Request

from google.oauth2.credentials import Credentials

from google_auth_oauthlib.flow import InstalledAppFlow

from googleapiclient.discovery import build

from googleapiclient.errors import HttpError

import time


 

lista_ids_curso = []


 

def main():

 

    serviceclass = Autenticacao().serviceclass

    servicework = Autenticacao().servicework

    servicesheets = Autenticacao().servicesheets

 

    page_token = None

 

    while True:

 

        response = serviceclass.courses().list(courseStates='ACTIVE', pageSize=0, pageToken=page_token).execute()

 

       

        page_token = response.get('nextPageToken', None)

        dic_cursos = response['courses']        

       

        for dados_cursos in dic_cursos:

            lista_ids_curso.append(dados_cursos['id'])

       

        if not page_token:

            break

   

    contador = 2

 

    for ids_cursos in lista_ids_curso:

       

        pegar_materiais = serviceclass.courses().courseWorkMaterials().list(courseId=ids_cursos).execute()

        try:

            dados_materiais = pegar_materiais['courseWorkMaterial']

            for dic_courseWorkMaterial in dados_materiais:

                curso_id = dic_courseWorkMaterial['courseId']

                id_material = dic_courseWorkMaterial['id']

                status = dic_courseWorkMaterial['state']

                data_criacao = dic_courseWorkMaterial['creationTime']

                titulo = dic_courseWorkMaterial['title']

                descricao = dic_courseWorkMaterial['description']

                horas_aula = descricao[:3]

 

                ## Pegar taxonomias ##

                try:

                    primeiro_colchete =(descricao.index('('))

                    teste_col = primeiro_colchete+1

                    segundo_colchete = (descricao.index(')'))

                    taxonomia = descricao[teste_col:segundo_colchete]

                 

                except ValueError:

                    pass

 

                id_topico = dic_courseWorkMaterial['topicId']

                id_professor = dic_courseWorkMaterial['creatorUserId']

 

                ## Pegar nome professor ##

                pegar_professores = servicework.users().get(userKey=id_professor).execute()

                dic_name = pegar_professores['name']

                nome_professor = dic_name['fullName']

                email_professor = pegar_professores['primaryEmail']

 

                ## Pegar nome tópicos ##

                pegar_topicos = serviceclass.courses().topics().get(courseId=curso_id, id=id_topico).execute()

                nome_topico = pegar_topicos['name']

 

                ##### sheets #####

                print(contador)

                ID_PLANILHA = 'ID CODIGO'

                teste1 = str(contador)

                range = 'materiais_teste!A' + teste1

 

                body = [[curso_id, id_material, status, data_criacao, titulo, descricao, horas_aula, taxonomia, id_topico, id_professor, nome_professor, email_professor, nome_topico]]

 

                servicesheets.spreadsheets().values().update(spreadsheetId=ID_PLANILHA, range=range, valueInputOption='USER_ENTERED', body={'values': body}).execute()

 

                contador += 1

                time.sleep(0.3)


 

        except KeyError:

            pass





 

main()


 

Editado por jediael.reis
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
  • Quem está online   0 Membros, 0 Anônimos, 36 Visitantes (Ver lista completa)

    • There are no registered users currently online


×
×
  • Create New...