gpt4 book ai didi

python - 我怎样才能重构这段代码更简洁?

转载 作者:行者123 更新时间:2023-11-28 20:40:43 25 4
gpt4 key购买 nike

我正在使用 Python 从 Google Analytics(分析)核心报告 API 中提取一些数据。我已经设法使用函数对 API 进行不同的调用(下面只是两个示例),但我想知道如何重构它以使其更短?仍然有很多重复代码。

def get_pvs(service, profile_id, start_date, end_date, type, data):
if type == "url":
return service.data().ga().get(
ids = 'ga:' + profile_id,
start_date = start_date,
end_date = end_date,
metrics = 'ga:pageviews',
dimensions = 'ga:pagePath',
filters = 'ga:pageviews!=0',
sort = '-ga:pageviews',
max_results = '10000').execute()
elif type == "author":
return service.data().ga().get(
ids = 'ga:' + profile_id,
start_date = start_date,
end_date = end_date,
metrics = 'ga:pageviews',
# Post Author
dimensions = 'ga:dimension2',
sort = '-ga:pageviews',
max_results = '100').execute()

最佳答案

创建一个带有特定类型参数的字典,然后用 **kw 应用它:

def get_pvs(service, profile_id, start_date, end_date, type, data):
if type == 'url':
kwargs = {
'dimensions': 'ga:pagePath',
'filters': 'ga:pageviews!=0',
'maxresults': 100
}
elif type == 'author':
kwargs = {
'dimensions': 'ga:dimension2',
'max_results': '100'
}
return service.data().ga().get(
ids = 'ga:' + profile_id,
start_date = start_date,
end_date = end_date,
metrics = 'ga:pageviews',
sort = '-ga:pageviews',
**kwargs).execute()

我保留了常见的论点。如果 type 可以有更多的值,那么您可能还需要添加一个 else: return None

关于python - 我怎样才能重构这段代码更简洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35296348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com