Mailchimp url 使用电源查询

Mailchimp url using power query

我不是程序员,因此我正在尝试使用 Power 查询从 Mailchimp 中提取数据,Power 查询允许我编写 url link 并获取表格中的数据 (XMK/Json)。 这是我的 URL **http://us5.api.mailchimp.com/3.0/reports?apikey=(secret) 我只收到 10 份报告,而不是 100 份。 我做错了什么吗?

提前致谢

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

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,看起来您确实可以使用 power query 连续调用 url。您可以使用其中一个答案中提到的类似这样的模式:

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