-2

我刚刚开始使用 python,我正在编写一个脚本来返回一堆链接的点击次数。我正在使用 for 循环遍历所有链接并返回每个链接的点击次数:

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = ENDPOINT
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])

返回到终端的结果如下所示:

link_clicks: 938
link_clicks: 63
link_clicks: 3921
link_clicks: 47
link_clicks: 21

将所有这些数字相加并返回总数的最佳方法是什么?理想情况下,我希望能够在终端中将总数打印为“total link_clicks: (total)”。

编辑:

谢谢大家的回答。我想我的头脑中的解决方案过于复杂,出于某种原因,我认为它需要创建一个列表,必须将 for 循环中的每个新整数添加到该列表中,然后通过索引单独添加该新列表的每个元素以获取总数。

4

2 回答 2

1

你并没有真正“返回”任何东西。您只是将文本打印到控制台。

如果要返回一个值,则需要使用return语句:

values = []

for url in short_urls:
    ...

    values.append(number)

return values

或者你可以yield用来制作一个生成器:

for url in short_urls:
    ...

    yield number

两者都可以使用函数进行总结sum

total = sum(your_function())
于 2013-01-11T22:24:09.923 回答
0

您用于sum()添加列表中的元素。

nums = []

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = "https://api-ssl.bitly.com/v3/link/clicks"
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])
    nums.append(data['data']['link_clicks'])

print 'total link_clicks:', sum(nums)

或者只是将它们添加到变量中..

total_links_clicks = 0

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = "https://api-ssl.bitly.com/v3/link/clicks"
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])
    total_links_clicks += data['data']['link_clicks']

print 'total link_clicks:', total_links_clicks
于 2013-01-11T22:23:55.620 回答