Skip to content

Instantly share code, notes, and snippets.

@addohm
Created August 7, 2023 16:34
Show Gist options
  • Save addohm/1af7145cd7af07e687baf8848835a16f to your computer and use it in GitHub Desktop.
Save addohm/1af7145cd7af07e687baf8848835a16f to your computer and use it in GitHub Desktop.
Lottery Numbers based on historical data
import requests
from datetime import datetime
def get_mega_millions_data():
url = "https://api.opendatastack.com/v1/lottery/mega-millions"
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
raise Exception("Failed to fetch data")
def filter_data_by_date(data, start_date, end_date):
start_date = datetime.strptime(start_date, "%Y-%m-%d")
end_date = datetime.strptime(end_date, "%Y-%m-%d")
filtered_data = []
for entry in data:
draw_date = datetime.strptime(entry["draw_date"], "%Y-%m-%d")
if start_date <= draw_date <= end_date:
filtered_data.append(entry)
return filtered_data
def get_most_common_numbers(data, num_of_common_numbers):
numbers_count = {}
for entry in data:
winning_numbers = entry["winning_numbers"].split()
for number in winning_numbers:
numbers_count[number] = numbers_count.get(number, 0) + 1
sorted_numbers = sorted(numbers_count.items(), key=lambda x: x[1], reverse=True)
return sorted_numbers[:num_of_common_numbers]
if __name__ == "__main__":
start_date = input("Enter the start date (YYYY-MM-DD): ")
end_date = input("Enter the end date (YYYY-MM-DD): ")
num_of_common_numbers = int(input("Enter the number of most common numbers to show: "))
try:
data = get_mega_millions_data()
filtered_data = filter_data_by_date(data, start_date, end_date)
common_numbers = get_most_common_numbers(filtered_data, num_of_common_numbers)
print(f"The most common {num_of_common_numbers} winning numbers from {start_date} to {end_date}:")
for number, count in common_numbers:
print(f"Number: {number}, Frequency: {count}")
except Exception as e:
print(f"An error occurred: {e}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment