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