Mailchimp网址使用电源查询

时间:2015-12-16 09:11:12

标签: mailchimp powerbi powerquery

我不是一个程序员,因此我尝试使用Power查询从Mailchimp中提取数据,电源查询允许我编写url链接并获取表中的数据(XMK / Json)。 这是我的网址** http://us5.api.mailchimp.com/3.0/reports?apikey=(secret) 我只得到十份报告,而不是100份报告。 我做错了吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

是。在mailchimp文档中没有记录,但默认情况下,当您查询mailchimp 3.0 API时,您只获得前十条记录。为了获取更多的记录,您必须使用&offset&count查询字符串参数。在我最近的一个python项目中,我按如下方式实现了它,以获取每个请求的1000个记录的块/页。也许,您可以将其转换为电力查询:

campaigns = []
baseurl = "https://" + dc + ".api.mailchimp.com/3.0/"
psize, i = 1000, 0 #page size
while(True):
    turl = baseurl + "reports"
    turl += "?since_send_time=" + camp_since_send_time
    turl += '&offset=' + str(psize * i) + '&count=' + str(psize)
    request = urllib2.Request(turl)
    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()
    MailChimpExpress.createfile("allcampaigns.json", output)
    cnt = len(data['reports'])
    print str(cnt) + " campaigns retrieved"
    for report in data['reports']:
        lst = [report["id"], report["campaign_title"], report["type"], report["emails_sent"]]
        campaigns.append(lst)
    if cnt<psize: break #cnt could also be zero if no records are returned
    i += 1

修改

根据这个technet link,看起来您确实可以使用电源查询连续调用网址。您可以使用其中一个答案中提到的类似这样的模式:

let
    Source = Table.FromColumns({{"firstURL", "secondURL", "etc."}}, {"URLS"}),
    InsertedCustom = Table.AddColumn(Source, "Custom", each Web.Page(Web.Contents([URLS])))
in
    InsertedCustom