【发布时间】:2019-10-08 13:21:50
【问题描述】:
有一个函数,它根据请求类型(在此 dict 中指示)迭代带有 GA API 参数的 dict,获取其他参数,结果我们有一个新的 dict。
表是从 SQL 表中获取的,并且是 pandas df 格式
指标表的指标 尺寸表的尺寸
def ga_config(dimensions, metrics, ga_config_1):
data_finish = {} # finish dict with all parameters
for k in ga_config_1.keys(): # check the type of the request (ga_standard or ga_users)
metrics_type = metrics.loc[(metrics['request_type'] == k)] # get the rows for this type of request
metrics_list = metrics_type['metric_name'].to_list() # convert them to a list
dimensions_type = dimensions.loc[(dimensions['request_type'] == k)]
dimensions_list = dimensions_type['dimension_name'].to_list()
dimensions_js = [{
'name': x,
} for x in dimensions_list] # add 'name' in order to make a request later
metrics_js = [{
'expressions': x,
} for x in metrics_list] # add 'expressions' in order to make a request later
"""
Iterates over a dict with the rest of the parameters like view_id and dates
"""
for k, v in ga_config_1.items():
data = {'view_id': v['view_id'],
'start_date': v['start_date'],
'end_date': v['end_date'],
'metrics': metrics_js,
'dimensions': dimensions_js
}
data_finish['view_id_' + v['view_id']] = data
return data_finish
# ga_config_1 parameters: 2 types of request, but can be more: ga_standard and ga_users
ga_config_1 = {'ga_standard' : {'view_id': '115126931',
'start_date': '2019-01-01',
'end_date': '2019-01-01'},
'ga_standard' : {'view_id': '1151269318',
'start_date': '2019-01-01',
'end_date': '2019-01-01'},
'ga_users' : {'view_id': '1151269399',
'start_date': '2019-01-01',
'end_date': '2019-01-01'}}
如果输入 ga_standard: 尺寸:ga:年 指标:ga:sessions, ga:bounces
如果输入 ga:users: 维度:ga:userType 指标:ga:users
但结果只是ga_config_1中的最后一个参数
data_finish = {
'view_id_1151269399': {'view_id': '1151269399',
'start_date': '2019-01-01',
'end_date': '2019-01-01',
'metrics': [{'expressions': 'ga:users'}],
'dimensions': [{'name': 'ga:userType'}]}}
但所需的输出应该包含所有这些
data_finish ={
{'view_id_115126931': {'view_id': '115126931',
'start_date': '2019-01-01',
'end_date': '2019-01-01',
'metrics': [{'expressions': 'ga:users'}, {'expressions': 'ga:sessions'}, {'expressions': 'ga:bounces'}],
'dimensions': [{'name': 'ga:year'}]}},
{'view_id_1151269318': {'view_id': '1151269318',
'start_date': '2019-01-01',
'end_date': '2019-01-01',
'metrics': [{'expressions': 'ga:users'}, {'expressions': 'ga:sessions'}, {'expressions': 'ga:bounces'}],
'dimensions': [{'name': 'ga:year'}]}},
{'view_id_1151269399': {'view_id': '1151269399',
'start_date': '2019-01-01',
'end_date': '2019-01-01',
'metrics': [{'expressions': 'ga:users'}],
'dimensions': [{'name': 'ga:userType'}]}
}
我知道有一些愚蠢的错误,但无法理解
【问题讨论】:
标签: python json list dictionary