Mailchimp API - 分页不适用于列表
Mailchimp API - Pagination not working for lists
我正在尝试制作一个通用的 python
脚本来通过 mailchimp
api 检索任意数量的列表。但是,"pagination" 功能不起作用。我的帐户中有 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
原来问题只出在我的代码中,当然 mailchimp api
没有任何问题。在返回的 json
对象上,我计算的是 len(data) 而不是 len(data.lists) 对象。修复它并开始工作!
我正在尝试制作一个通用的 python
脚本来通过 mailchimp
api 检索任意数量的列表。但是,"pagination" 功能不起作用。我的帐户中有 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
原来问题只出在我的代码中,当然 mailchimp api
没有任何问题。在返回的 json
对象上,我计算的是 len(data) 而不是 len(data.lists) 对象。修复它并开始工作!