提高python迭代器的速度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提高python迭代器的速度相关的知识,希望对你有一定的参考价值。

我已经在python中实现了一个大的查询作业应用程序并部署在app引擎中,需要一些帮助来提高下面过滤器的效率,过滤器只过滤到作为输入提供的用户电子邮件

credentials = GoogleCredentials.get_application_default()
bq_conn= discovery.build('bigquery', 'v2', credentials=credentials)

job_query_dict = []    


###Create the big query client
client =bigquery.Client(project=project_id)


###List the jobs in the client
jobs = client.list_jobs(all_users=True)   # API request
print( [job for job in list(client.list_jobs(all_users=True)) if job.user_email==user_email][0])

如何打印user_email输入中给出的用户的作业比这更好?

答案

将作业数据作为pandas数据帧访问比从列表中访问要快

t=bigquery_service.jobs().list(projectId=project_id,allUsers=True,projection='full',stateFilter=job_state.lower()).execute()
try:
    tab = pd.DataFrame(t['jobs'])    
except:
    return "No jobs"

以上是关于提高python迭代器的速度的主要内容,如果未能解决你的问题,请参考以下文章

Python迭代器的反复使用

如何在python中保存迭代器的状态?

Python 3:检查迭代器的下一个值而不进行迭代

Python中迭代器和生成器的区别与联系

python多重继承的属性和方法调用顺序问题和对迭代器的初步理解

python--迭代器的实现