【发布时间】:2023-03-06 11:08:01
【问题描述】:
Google Analytics(分析)将增量浏览器版本视为不同,因此我的报告无法得出任何有用的结论。例如,Chrome 45.0.2454.93 被视为与 45.0.2454.85 不同的浏览器。
我想编写一个 Python 2 应用程序,它可以抓取 Google Analytics CSV 并汇总主要浏览器版本的会话信息。
我是 Python 新手,但这是我的尝试……
from __future__ import division
import csv
from collections import defaultdict
RAWFile = 'somefile.csv'
def default_val():
return [0, 0]
def aggregateaway():
with open(RAWFile, 'r') as inf:
has_header = csv.Sniffer().has_header(inf.read(1024))
inf.seek(0) # rewind
incsv = csv.reader(inf)
if has_header:
next(incsv) # skip header row
reader = csv.DictReader(incsv, 'r')
BrowserVersion = defaultdict(default_val)
for row in reader:
Sessions = int(row["Sessions"])
BrowserVersion[row["BrowserVersion"]][0] += Sessions
writer = csv.writer(open('out.csv', 'w'))
writer.writerow(["BrowserVersion", "Sessions"])
writer.writerows([BrowserVersion] + BrowserVersion[BrowserVersion] for BrowserVersion in BrowserVersion)
我知道两个问题:
- 我收到
ValueError('I/O operation on closed file',)- 我认为这是因为我使用了在数据之前跳过前导行的逻辑。 - 我不确定如何以编程方式对主要浏览器版本进行分组。是
left(BrowserVersion, 2)吗?即便如此,由于其他浏览器的版本控制约定,这也是有缺陷的。也许我可以搜索第一个.然后应用左边的 x 个字符。我如何将它添加到上面的代码中?
编辑:一些示例 CSV 数据:
# ----------------------------------------
# My Site
# Web Browsers
# 20150828-20150927
# ----------------------------------------
Browser,Operating System,Browser Version,Sessions,Bounce Rate
Safari,iOS,8.0,"1,681",68.91%
Chrome,Windows,45.0.2454.85,"1,200",40.98%
Chrome,Windows,45.0.2454.93,"2,273",40.98%
【问题讨论】:
标签: python python-2.7 csv