CSV Export¶
Generate fake addresses and dump them to a CSV file.
import csv
from smartfaker import Faker
FIELDS = ["person_name", "city", "street", "postal_code", "country_code"]
faker = Faker()
with open("seed_addresses.csv", "w", newline="", encoding="utf-8") as fh:
writer = csv.DictWriter(fh, fieldnames=FIELDS, extrasaction="ignore")
writer.writeheader()
for code in ["us", "gb", "de", "fr", "jp"]:
for addr in faker.address(code, amount=200):
writer.writerow(addr)
print("Wrote seed_addresses.csv")
Async variant¶
For very large dumps, generate concurrently with the async API:
import asyncio, csv
from smartfaker import Faker
faker = Faker()
async def make(code):
return code, await faker.aaddress(code, amount=500)
async def main():
codes = ["us", "gb", "de", "fr", "jp", "br", "in", "au"]
results = await asyncio.gather(*(make(c) for c in codes))
with open("seed_addresses_async.csv", "w", newline="", encoding="utf-8") as fh:
writer = csv.DictWriter(fh, fieldnames=["country", "city"])
writer.writeheader()
for code, rows in results:
for row in rows:
writer.writerow({"country": code, "city": row.get("city", "")})
asyncio.run(main())