用途:对以色列地址做格式化、组件校验与地理编码,涵盖 7 位邮政编码(mikud)查询和 CBS 城市代码(semel yishuv)解析。使用时先确认表单要的是哪种地址:人口登记册中的 מען(登记地址)由内政部管理,仅能通过变更地址通知修改;投递地址由 Israel Post 路由。涉及政府表单时应提示用户从 ספח 取地址,两者不一致时需向内政部申报变更,而非仅重新格式化。
主要能力:校验城市是否在官方定居点列表(1,310 条)中、街道是否属于该城市、门牌格式,以及地址与邮区是否匹配。可查询缺失数据:定居点与街道用 data.gov.il 的 CKAN datastore 无密钥 API(例如 GET https://data.gov.il/api/3/action/datastore_search?resource_id=5c78e9fa-c2e2-4771-93ff-7f400a12f7ba&q=<name> 解析定居点;resource_id=9ad3862c-8391-4b2f-84a4-2d4c68625f4b 校验街道)。邮编查询的官方途径是 https://doar.israelpost.co.il/locatezip 网页表单;其背后的 apimftprd.israelpost.co.il JSON API 为未文档化接口,需订阅密钥,稳定性、速率限制与使用条款均未明确,不应告知用户自动化使用已获允许。批量处理时,定居点代码与街道校验可自动化,mikud 无法可靠批量获取,应留空并逐行说明原因。
限制:本技能不能读取人口登记册。不要使用 bennymeg/IsraelPostalServiceAPI 做 mikud 查询(它是运费计算库)。注意三类 id 空间(semel yishuv、Israel Post 城市 id、街道代码)不可互换;CKAN 的 שם_ישוב 字段全部带尾随空格,比较前需去除;拉丁名存在重复与截断,不能作为连接键;街道数据集中的 סמל_רחוב=9000 为地区自身名称的哨兵行。未分街的定居点(多数基布兹、莫沙夫及部分阿拉伯城镇)只有一个地区级 mikud,不应索取街道名。涉及西岸或戈兰高地边界时应避免假设。bundled 脚本 scripts/lookup_address.py 支持 city、format、cities 子命令,运行 python scripts/lookup_address.py --help。