python - 在 Google Analytics API 中使用多个表达式

标签 python google-analytics google-analytics-api

我正在使用 Google Analytics Python API,并且想要在维度中查找多个部分字符串匹配项。像下面这样的东西工作正常:

"filters": [
    {
    "dimensionName": "ga:pagePath",
    "operator": "PARTIAL",
    "expressions": ["substring1"]
    },
    {
    "dimensionName": "ga:pagePath",
    "operator": "PARTIAL",
    "expressions": ["substring2"]
    }    
           ]

但是我想组合这些表达式,这样更容易做类似很多子字符串的事情。我看到“表达式”将采用正则表达式,所以我尝试使用下面的代码,但它不起作用。有人可以帮忙吗?

"filters": [
    {
    "dimensionName": "ga:pagePath",
    "operator": "PARTIAL",
    "expressions": ["substring1|substring2"]
    }    
           ]

我确信这是一个简单的问题,但我在任何地方都找不到答案。我想我可能使用了错误的方法。

最佳答案

将数据初始化为字典列表:

filters = [{
    "dimensionName": "ga:pagePath",
    "operator": "PARTIAL",
    "expressions": ["substring1"]
    },
    {
    "dimensionName": "ga:pagePath",
    "operator": "PARTIAL",
    "expressions": ["substring2"]
    }    
           ]

使用itertools进行分组:

import itertools

records = []

for key, group in itertools.groupby(filters, lambda x: x['dimensionName']):
    groups = list(group)
    rec = {'dimensionName':key}

    # assuming there are no duplicates of the operator
    rec['operator'] = min([x['operator'] for x in groups])    

    # the `sum` expression reduces the list of lists of expressions it is slow but readable. For production, revisit
    rec['expressions'] = sum([x['expressions'] for x in groups],[])

    records.append(rec)

print(records)

# [{'dimensionName': 'ga:pagePath',
#  'operator': 'PARTIAL',
#  'expressions': ['substring1', 'substring2']}]

关于python - 在 Google Analytics API 中使用多个表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808578/

相关文章:

python - 使用 Python 解析格式化的 JSON

python - 数据框的原始值没有变化

android - 火力地堡分析 : See event data

google-analytics - 我可以使用谷歌分析 api 找到特定页面的最受欢迎关键字吗?

php - Google Analytics、维度和指标 - 如何做?

python - 我的 ripemd160 python 代码有什么问题?

ajax - 如何使用桌面应用程序的测量协议(protocol)

android - 谷歌分析是否提供应用程序下载 API?

google-analytics - Google Analytics Reporting API V4 生命周期值(value)请求 - 无效的维度/指标

python - numpy 数组中的字典?