问题描述
我最近开始与 Faker 合作,因为它能够将数据本地化到各个区域。在尝试生成本地化电话号码时,我意识到电话号码有多种格式,如here 所示。我想知道是否可以将所有生成的电话号码格式化为:(+91 ##########),无论国家/地区代码如何,它都保持不变。谢谢!
解决方法
遗憾的是,Facker
没有内置函数来执行此操作。
您有两个选择。
自己编写函数,例如:
def fake_phone_number(fake: Faker) -> str:
return f'+91 {fake.msisdn()[3:]}'
from faker import Faker
def main():
fake = Faker()
print(fake_phone_number(fake))
或者创建一个合适的提供者并建议添加它:https://faker.readthedocs.io/en/master/communityproviders.html
或
from faker import Faker
from faker.providers.phone_number import Provider
class IndiaPhoneNumberProvider(Provider):
"""
A Provider for phone number.
"""
def india_phone_number(self):
return f'+91 {self.msisdn()[3:]}'
def main():
fake = Faker()
fake.add_provider(IndiaPhoneNumberProvider)
print(fake.india_phone_number())