我正在尝试从列表类型的列中创建一个新列。该值是与纬度和经度字段对应的国家/地区。该信息是通过Bing Map API检索得到的,使用"从Web获取数据"(按照此处的教程:https://sqldusty.com/2016/04/26/power-bi-and-the-bing-maps-api/)。
1. 从网上获取数据。
这暂时符合我的需求,但也许保持开放状态以查看是否有人知道如何从嵌套表值中制作表格是个好主意?感谢您的帮助!
基本上,我需要List.Record[1].address.countryRegion。是否可能创建一个包含此特定值的列,而无需进行"展开为新行"操作?问题在于,有些列返回法国,并且行数增加到1000多行,但实际应该只有大约250行。
这里是我得到列表列的过程:1. 从网上获取数据。
2. 使用基本选项并粘贴带有我的Bing地图密钥的位置API请求。然后点击确定。
http://dev.virtualearth.net/REST/v1/Locations/point=40,-122?&key=BingMapsKey
3. 进入“视图”>“高级编辑器”,即可进入高级编辑器。
4. 制作一个以纬度和经度为输入的函数
let getCountry = (Latitude as text, Longitude as text) =>
let
Source = Json.Document(Web.Contents("http://dev.virtualearth.net/REST/v1/Locations/point="& Latitude &","& Longitude &"?&key=BingMapsKey"))
in
Source
in
getCountry
5. 将函数名称更改为GetCountry,然后导航到所需的表格以添加列(包括纬度和经度)
7. 从函数列表中选择GetCountry,将类型更改为列名,并将输入分配给相应的列名(纬度和经度)。 然后点击确定。
8. 该列显示在右侧。 我过滤掉除'resourceSets'之外的所有列,因为它具有地址值。
编辑 我找到了一种减少返回请求中列表数量的方法,那就是仅将国家/地区作为查询参数进行请求:
http://dev.virtualearth.net/REST/v1/Locations/40,-122?key=BingMapsKey&includeEntityTypes=CountryRegion
这暂时符合我的需求,但也许保持开放状态以查看是否有人知道如何从嵌套表值中制作表格是个好主意?感谢您的帮助!