我正在与两个API进行交互,这两个API返回格式完全不同的地址。一个返回“6 Avenue
”之类的地址,另一个返回“6 Ave.
”
我探索过使用Normalic gem,但由于某些原因,我的许多地址都是格式错误或空白:“6 Avenue
”返回为“Ave.
”。
我也尝试过GeoCoder,但谷歌和雅虎等每个API都设置了配额。在开发中测试我的应用程序几个小时后,这些配额到期。这显然不会在生产中发挥作用。
如果有一个图书馆允许我做一些像评估"6 Ave." == "6 Avenue"
的事情,那就太好了。
答案 0 :(得分:4)
对于美国地址,USPS提供an address api。我的理解是,不收取任何费用,但您的目的需要与电子商务网站一起使用,以便在输入时验证广告。
对于清理数据库,USPS通常会将您发送给其(贵)服务提供商之一以进行邮寄。
答案 1 :(得分:1)
Ruby StreetAddress gem应该为您解决这个问题:https://rubygems.org/gems/StreetAddress
以下是您案例的一些示例用法:
pry(main)> StreetAddress::US.parse("42 6 Ave., Washington, DC")
=> 42 6 Ave, Washington, DC
pry(main)> StreetAddress::US.parse("42 6 Avenue, Washington, DC")
=> 42 6 Ave, Washington, DC
因此,如果您通过解析方法运行两个API地址,它应该为您标准化,并为更多反射,骑自行车和披萨消费释放生命。