如何解析FRA公开OData接口元数据,获取编码属性对应的实际名称?
解决方案
元数据结构说明
你提供的元数据为OData v3格式,核心结构分为三类:
- 实体类型(EntityType):定义每个资源的字段、主键、关联关系
- 关联(Association):定义实体间的外键映射规则,例如
Crossing实体的CntyCD字段通过关联绑定到County实体的主键CountyCD - 实体集(EntityContainer):列出所有可直接访问的资源集合,例如
Crossings、Counties等
针对CntyCD转县名的两种实现方式
方式1:直接通过OData查询拉取关联县名
请求Crossing数据集时,在请求URI后追加?$expand=County参数,返回的每个Crossing节点会自动嵌套对应的County实体信息,其中包含县名字段。
如果使用Excel Power Query操作,无需手动拼接URI:在配置OData源的加载选项时,勾选展开County导航属性即可直接获取县名字段。
方式2:单独拉取县映射表关联匹配
如果不需要修改原有Crossing数据的拉取逻辑,可以单独请求全量县编码映射表:
- 请求地址:
https://safetydata.fra.dot.gov/MasterWebService/PublicApi/frads/v1/odata/gcis/Counties
拉取完成后,在Power Query中使用「合并查询」功能,将Crossing表的CntyCD字段与County表的CountyCD字段做等值匹配,即可关联获取对应的县名称。
其他属性元信息查询方法
如果需要查询其他字段的关联关系,直接在元数据中找到Crossing实体类型对应的NavigationProperty(导航属性)节点,每个节点对应一个可关联的外部实体,都可以用上述两种方式获取对应的文本值。
内容的提问来源于stack exchange,提问作者Dennaldo
相关产品推荐
相关产品推荐

