首页 > 解决方案 > Python Faker 电话号码格式

问题描述

我最近开始使用 Faker,因为它能够将数据本地化到各个区域。在尝试生成本地化电话号码时,我意识到电话号码有多种格式,如此处所示。我想知道是否可以将所有生成的电话号码格式化为:(+91 ##########),无论国家代码如何,它都保持不变。谢谢!

标签: pythonfaker

解决方案


不幸的是,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

Python 源MSISDN。什么是MSISDN

或者

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())

推荐阅读