【问题标题】:Mailchimp API - Pagination not working for listsMailchimp API - 分页不适用于列表
【发布时间】:2016-02-18 21:11:11
【问题描述】:

我正在尝试制作一个通用的python 脚本来通过mailchimp api 检索任意数量的列表。但是,“分页”功能不起作用。我的帐户中有 16 个列表,无论我为 offset=n&count=n 尝试什么值,我都只得到这 16​​ 条记录。这是我获取列表的部分代码:

#FETCH ALL REPORTS
baseurl = "https://" + dc + ".api.mailchimp.com/3.0/"
request = urllib2.Request(baseurl + "reports/")
base64string = base64.encodestring('%s:%s' % (username, key)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
try:
    output = urllib2.urlopen(request).read()
    data =  json.loads(output)
except:
    print "Error occurred. Make sure you entered the correct api key"
    exit()
createfile("allcampaigns.json", output)

psize, i = 10, 0
while(True):
    list_url = baseurl + "lists" + '?offset=' + str(psize * i) + '&count=' + str(psize) 
    #list_url = baseurl + "lists+ '?offset=' + str(psize * i) + '&count=' + str(psize) 
    print list_url
    request = urllib2.Request(list_url)
    base64string = base64.encodestring('%s:%s' % (username, key)).replace('\n', '')
    request.add_header("Authorization", "Basic %s" % base64string)
    output = urllib2.urlopen(request).read()
    createfile("alllists.json", output)
    #print output
    data.update(json.loads(output))
    cnt = len(data)
    print cnt, " lists retrieved."
    if cnt<psize: break #cnt could also be zero if no records are returned
    i += 1

【问题讨论】:

  • 我不确定我是否遵循。您的代码看起来应该返回所有 16 个列表。你希望它做什么?
  • 不,它没有。我已经包含了psize 变量来控制设置为10 的分页。所以,我应该在第一个请求中获得 10 行,随后获得其他 6 行,而不是一次全部 16 行。
  • list_url 的值是多少? MailChimp 的分页在 v3.0 中对我来说工作正常。查看您发送的实际请求和 MailChimp 的实际响应会很有用。也许通过Runscope 代理发送请求?
  • 如果您通过我们运行它,您可以轻松分享结果:runscope.com/docs/sharing
  • 谢谢,@JohnSheehan-Runscope。抱歉,问题出在我的最后,mailchimp API 没有问题。在返回的 json 对象上,我计算的是 len(data) 而不是 len(data.lists) 对象。修复它并开始工作!

标签: python mailchimp


【解决方案1】:

这个问题只出现在我的代码中,当然,mailchimp api 没有任何问题。在返回的json 对象上,我计算的是 len(data) 而不是 len(data.lists) 对象。修复它并开始工作!

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2011-07-08
    • 2013-12-30
    • 2015-03-28
    • 1970-01-01
    相关资源
    最近更新 更多