尝试将数据从SODA API提取到Excel中

时间:2018-03-14 23:23:34

标签: excel powerquery

API调用如下所示: https://data.edmonton.ca/resource/3pdp-qp95.json?house_number=10008&street_name=103%20STREET%20NW

并在json中返回数据: [{ “ACCOUNT_NUMBER”: “3070208”, “车库”: “N”, “house_number”: “10008”, “纬度”: “53.539158992619”, “经度”: “ - 113.497760691896”, “邻居”: “闹” ,“street_name”:“103 STREET NW”,“tax_class”:“非住宅”,“total_asmt”:“1717000”}]

我有一个包含特定house_number和street_name对的excel表,我想捕获每对的total_asmt列。

我已经能够创建一个电源查询,将第一个数据点拉入新表:

let
  Parameter = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
  #"Removed Other Columns" = Table.SelectColumns(Parameter,{"house_number", "street_name"}),
  X = #"Removed Other Columns"[house_number]{0},
  Y = #"Removed Other Columns"[street_name]{0},
  Source = Json.Document(Web.Contents("https://data.edmonton.ca/resource/3pdp-qp95.json?house_number="& X &"&street_name=" & Y)),
in
  Source

我无法弄清楚如何遍历X和Y中的所有值,或者如何从JSON数据中捕获特定的行。任何帮助将不胜感激!

谢谢,

Aaleem

2 个答案:

答案 0 :(得分:0)

我认为你最好的是不要这样做

为什么 您是否浪费时间将这些数据写入一个地址,此时您可以在一分钟内获得整个城市的数据。

当你完成那个时,他们还有几百个其他有趣的数据集。

答案 1 :(得分:0)

诀窍是在powerquery中创建一个函数,然后将查询用作表的一部分。创建如下的功能,然后在数据选项卡下使用“从表/范围”选择您的表格,这是非常简单的。

let a_value= (x as number,y as text)=> //this creates the function

let //this is essentially the query I wanted with some minor changes from above
  x_text = Number.ToText(x, "D", ""),
  Source = Json.Document(Web.Contents("https://data.edmonton.ca/resource/3pdp-qp95.json?house_number="&x_text&"&street_name="&y)),
  Source1 = Source{0},
  total_asmt = Source1[total_asmt]
in
  total_asmt

in a_value //closes the function