如何使用 Python 的 mailchimp3 更新订阅者标签?

问题描述

我正在尝试使用来自外部来源的购买数据定期使用 mailchimp3 包/API 更新 MailChimp 列表成员的标签标签需要根据客户最近的购买情况每周更新一次。示例数据如下:

original_contacts = pd.DataFrame{'First Name': {0: 'Michael',1: 'James',2: 'Josephine',3: 'Art',4: 'Lenna'},'Last Name': {0: 'Ox',1: 'Butt',2: 'Darakjy',3: 'Venere',4: 'Paprocki'},'Email': {0: 'mox@gmail.com',1: 'jbutt@gmail.com',2: 'josephine_darakjy@darakjy.org',3: 'art@venere.org',4: 'lpaprocki@hotmail.com'},'Account Name': {0: 'Lenixi,Co.',1: 'Lenixi,2: 'Lenixi,3: 'Fouray,4: 'Fouray,Co.'},'Purchase': {0: 'No Purchase',1: 'No Purchase',2: 'No Purchase',3: 'Purchase',4: 'No Purchase'}}

我已经成功地使用我从 this post 修改的脚本创建了新成员并更新了现有成员的合并字段:

list_id = '123456'
operations = []

for index,row in original_contacts.iterrows():
    databody_item = {'email_address': row['Email'],'status': 'subscribed','merge_fields': {
                         'FNAME': row['First Name'],'LNAME': row['Last Name'],'COMPANY': row['Account Name'],},'tags': [row['Purchase']]
                    }
    operations.append(databody_item)

def upload_list(list_id,subscribers_data):
    data = {'operations': create_subscriptions_data(list_id,subscribers_data)}
    client.batches.create(data)

def create_subscriptions_data(list_id,users_data):
    return [{'method': 'PUT','path': 'lists/{}/members/{}'.format(list_id,user['email_address']),'body': json.dumps(user)} for user in users_data]

upload_list(list_id,operations)

上述脚本将为新成员创建标签,但不会更新现有成员的标签。我还尝试了以下代码的变体,以查看是否可以更新单个成员的标签,但没有成功:

client.lists.members.tags.update(list_id = list_id,subscriber_hash='xxxxxxxxxxx',data = {'tags': [{'name': 'Purchase'}]})

这不会抛出任何错误,也不会对现有标签做任何事情。

我想出的唯一解决方案是手动删除所有现有标签并使用新标签更新每个联系人。但是,这是非常低效的,我想 1) 避免更新未更改的标签,2) 希望在我的应用中完成所有操作。

非常感谢所有帮助!提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)