Python Faker 电话号码格式

问题描述

我最近开始与 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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...