如何使用Mailchimp API 3.0从用户或兴趣中获得10个以上的条目?

Ste*_*ers 6 python mailchimp mailchimp-api-v3.0

我在mailchimp中有一些列表,其中一些有成千上万的用户,其中一位代表建议我合并我的一些列表并使用"群组"(AKA兴趣)来定位某些受众.

我有一个包含40多个不同兴趣的"兴趣类别",我想在名称旁边获取他们的ID,这样我就可以通过API订阅用户并将其添加到正确的"群组/兴趣"中.

我非常接近获得他们的兴趣以及他们的名字,但文档没有说明增加条目数量或进入下一个 10.http://kb.mailchimp.com/api/resources/lists/interest -类别/权益/列表-利益收集

如果这有帮助的话,这就是我用来提高兴趣的代码.(用Python编写并使用'requests'库)

import requests
print "Name\tID"
r = requests.auth.HTTPBasicAuth('x', '00000000000000000000000000000-us4')
interest_categories_raw = requests.get('http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/', auth=r)
interest_categories = json.loads(interest_categories_raw.content)
for category in interest_categories['categories']:
    url = 'http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/{0}/interests'.format(str(category['id']))
    interests = json.loads(requests.get(url, auth=r).content)
    for interest in interests['interests']:
        print "{0}\t{1}".format(interest['name'],interest['id'])
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以获得其余的'兴趣/群组',包括名称和ID,以便我可以正确分配它们?(除了上传测试用户和修补他们的兴趣数据以及检查网站以查看他们被添加到的网站之外的任何其他方式)

Ste*_*ers 10

在TooMuchPete的评论中,他提到入门文件提到了分页.Mailchimp的API使用'count'和'offset'作为分页.它们是添加到URL末尾的参数.Count是每页的项目数量,Offset是从页面开始的距离(offset = 0将从第一个条目开始).所以网址

https://us4.api.mailchimp.com/3.0/lists/XXXXXXXXXX/members/?count=5&offset=10
Run Code Online (Sandbox Code Playgroud)

将从第11项开始获得5项("第3页",项目11-16)

在TooMuchPete的评论之前,我回答了我自己的问题:

我找到了我想要的兴趣ID与他们的名字相匹配.用户对象已经将所有兴趣ID都放在一个数组中,而不是按类别查找ID,我只是使用ID来查找它们的名称.对于将来可能遇到同样问题的任何人,这是我写的用于查找带有ID的名称的代码片段:

import requests
print "ID\tName"
r = requests.auth.HTTPBasicAuth('x', '00000000000000000000000000000000-us4')
interest_categories_raw = requests.get('http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/', auth=r)
interest_categories = json.loads(interest_categories_raw.content)

# List of all the interest IDs. Can be found from any user
# https://us4.api.mailchimp.com/3.0/lists/0000000000/members/000000000000000000000000
interest_ids = ["00000000000", "0000000000"]

for i_id in interest_ids:
    for category in interest_categories['categories']:
        url = 'http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/{0}/interests/{1}'.format(str(category['id']), str(i_id))
        raw_response = requests.get(url, auth=r)
        if raw_response.status_code != 404:
            interest = json.loads(raw_response.content)
            print interest['id'] + "\t" + interest['name']
Run Code Online (Sandbox Code Playgroud)

此代码将查找所有名称,并将它们与列表的所有ID匹配.如果其他任何人找到更好的方法将名称与ID匹配,请将其添加到此答案中.