Python 如何使用包含城市或地区名称的文本查找国家代码?我需要这些信息将电话号码格式化为E.164格式

Python 如何使用包含城市或地区名称的文本查找国家代码?我需要这些信息将电话号码格式化为E.164格式,python,python-3.x,Python,Python 3.x,我正在将电话号码解析为E.164格式,以便使用TwilioAPI进行呼叫。我使用的PhoneNumber是Google libphonenumber的python端口 为了正确地将没有国际代码的数字格式化为E.164格式,我对其进行如下解析: x = phonenumbers.parse("020 8366 1177", "GB") print(x) 但是,我没有关于数字的任何信息,我可以使用的唯一数据是.txt文件中的城市/地区数据。城市/区域可以是任何东西,从著名的“纽约市”,到像“江南,

我正在将电话号码解析为E.164格式,以便使用TwilioAPI进行呼叫。我使用的PhoneNumber是Google libphonenumber的python端口

为了正确地将没有国际代码的数字格式化为E.164格式,我对其进行如下解析:

x = phonenumbers.parse("020 8366 1177", "GB")
print(x)
但是,我没有关于数字的任何信息,我可以使用的唯一数据是.txt文件中的城市/地区数据。城市/区域可以是任何东西,从著名的“纽约市”,到像“江南,首尔”这样的区域,甚至只是“江南”

如何获取国家代码(“GB”、“US”、“FR”、“IN”等)以正确设置电话号码的格式? 最好的方法是什么

我看过phonenumber的地理编码器,但地理编码器接受phonenumber对象,这些对象只能在使用给定的国家代码进行解析后才能获得。
我还查看了MaxMind的GeoCity DB,但它只允许您根据IP地址获取位置信息。我的数据中没有IP地址。

我们的一个客户也有类似的问题,他们没有验证电话号码的国家/地区ISO2代码。他们使用联系人的名字(可能是来源国)来尝试并优先考虑要验证的国家。例如,对于一个韩国人的名字,他们会尝试验证一个韩国人的电话号码。我们通过结合个人姓名(人名)和电话号码格式(前缀、多少位数、多少空格,如果有破折号或括号等)来增强该用例

可以在这里在线试用


同样的扩展也可以使用地名,例如“江南,首尔”,甚至只是“江南”。我目前正在用户界面中首先询问用户他们的国家。我会研究付费服务,比如Twilio的电话号码查询,或者如果你有权访问MaxMind的公共IP,就使用MaxMind的DB。