How to Generate Fake Data in Python With Faker
Tags: python, programming, beginners, tutorial
Published: 2023-08-30 15:55:40

Do you often feel annoyed when trying to make made up data for testing your Python application such as names and addresses? Well, worry no more, now you can generate those data automatically using Faker package.

---

## Install Faker Dependency
To use the package, you have to install it first using the following command
```
pip install Faker
```

## Create fake data
After installing the package into your machine, you can start to use it by importing it into your code
```python
from faker import Faker
```
After that create an object from the Faker class
```python
fake = Faker()
```
Then you can start to use it, for example in here I will try to generate a fake name
```python
fake_name = fake.name()
print(fake_name)
```
From the output, you will see that the code will generate a fake name (your output might be different)
```
Tony Leon
```

I will use loop to generate 10 fake names
```python
for _ in range(10):
  print(fake.name())
```
You can see from the output that 10 fake names are generated
```
Jessica Griffin
Richard Carson
Alyssa Wilson
Jonathan Chandler
Clinton Riley
Jeffrey Moore
Lisa Coffey
Pamela Swanson
Carl Jones
Todd Guzman
Timothy Kim
Collin Dillon
Lisa Hall
Adam Robinson
Michael Richardson
Brandy Webb MD
Anthony Tate
Tyler Alvarado
Alyssa Lee
Heather Robbins
```

Not only generating a fake name, you can also generate a fake address and a fake text.

I will generate a fake address
```python
fake_address = fake.address()
print(fake_address)
```
The output shows a fake address
```
0084 Patel Crossing
New Eric, CT 79853
```

Below code will generate fake text
```python
fake_text = fake.text()
print(fake_text)
```
Below are the output of the generated fake text
```
Into side begin compare affect. Like fall generation.
Consider TV sell something method most.
Message personal fund attack sea social.
```

## Providers
Provider refer to a faker generator. You can use it like this
```python
from faker import Faker
from faker.providers import internet

fake = Faker()
fake.add_provider(internet)

for _ in range(10):
  print(fake.ipv4_private())
```
You can see the list of providers provided by the faker package built-in by this link [https://faker.readthedocs.io/en/stable/providers.html#standard-providers](https://faker.readthedocs.io/en/stable/providers.html#standard-providers) and also the providers that created by the community [https://faker.readthedocs.io/en/stable/communityproviders.html#community-providers](https://faker.readthedocs.io/en/stable/communityproviders.html#community-providers)

## Localization
You can set the localization according to your preference. For example, if you want to generate fake Japanese names, you can set it by the following code
```python
from faker import Faker

fake = Faker('ja_JP')

for _ in range(10):
  print(fake.name())
```
Below are the result of the code
```
鈴木 幹
藤井 さゆり
鈴木 幹
渡辺 結衣
長谷川 洋介
山崎 浩
山本 和也
渡辺 結衣
長谷川 美加子
中村 智也
```

Faker v3.0.0 supports multiple locales, so if you want to generate the combination of Japanese and US names
```python
from faker import Faker

fake = Faker(['en_US', 'ja_JP'])

for _ in range(10):
  print(fake.name())
```
The output is the following
```
Jerry Chavez
伊藤 真綾
Phillip Williams
Elizabeth Wood
Michelle Villarreal
森 康弘
Melanie James
Mr. Andrew Glenn
山田 結衣
田中 七夏
```
You can read the following page for the supported locales [https://faker.readthedocs.io/en/master/locales.html](https://faker.readthedocs.io/en/master/locales.html)

---

There you go, that is how to can utilize Faker package in Python to generate fake data. I hope this blog helps you, see you next time!