-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathsample.py
More file actions
74 lines (63 loc) · 2.38 KB
/
sample.py
File metadata and controls
74 lines (63 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import random
import json
from faker import Faker
from datetime import datetime, timedelta
# Initialize Faker object for generating random names
faker = Faker('en_IN')
# List of possible bus stops in Delhi
bus_stops = [
'Kashmere Gate', 'Rajiv Chowk', 'Sarojini Nagar', 'AIIMS', 'Nehru Place',
'Hauz Khas', 'Saket', 'Lajpat Nagar', 'Karol Bagh', 'Janakpuri'
]
# Function to generate random ID
def generate_id():
return f'DTC{random.randint(100,999)}{faker.lexify("???").upper()}'
# Function to generate a bus number
def generate_bus_number():
return f'DL{random.randint(10, 99)} S {random.randint(1000, 9999)}'
# Function to generate random route short number
def generate_route_short_number():
return random.randint(100, 999)
# Function to generate random start time and end time (end time 2 to 5 hours after start time)
def generate_times():
start_time = faker.date_time_this_year().time()
hours_added = random.randint(2, 5)
end_time = (datetime.combine(datetime.today(), start_time) + timedelta(hours=hours_added)).time()
return start_time.strftime('%H:%M:%S'), end_time.strftime('%H:%M:%S')
# Generate 500 unique bus numbers and create 2 entries for each (one driver and one conductor)
bus_data = []
for _ in range(600):
bus_num = generate_bus_number()
route_short_num = generate_route_short_number()
starting_point = random.choice(bus_stops)
start_time, end_time = generate_times()
# Generate entry for Driver
name_driver = faker.name()
id_driver = generate_id()
bus_data.append({
'Name': name_driver,
'ID': id_driver,
'RouteShortNum': route_short_num,
'BusNum': bus_num,
'CrewRole': 'Driver',
'StartingPoint': starting_point,
'StartTime': start_time,
'EndTime': end_time
})
# Generate entry for Conductor
name_conductor = faker.name()
id_conductor = generate_id()
bus_data.append({
'Name': name_conductor,
'ID': id_conductor,
'RouteShortNum': route_short_num,
'BusNum': bus_num,
'CrewRole': 'Conductor',
'StartingPoint': starting_point,
'StartTime': start_time,
'EndTime': end_time
})
# Save the data to a JSON file
with open('bus_service_data.json', 'w') as json_file:
json.dump(bus_data, json_file, indent=4)
print("Data generation complete! The file 'bus_service_data.json' has been created.")