def collect_uber_data(): total_estimates = [] estimates = {} #Global Learning Center GA TECH: 33.7762° N, 84.3895° W for place in places: estimates = {} response = client.get_price_estimates( start_latitude=33.7762, start_longitude=-84.3895, end_latitude=place["location"][0], end_longitude=place["location"][1]) estimate = response.json.get('prices') #print(estimate) #estimate10 estimates["place"] = place["name"] estimates["geometry"] = place["location"] autotimeinit = datetime.now() autotime = autotimeinit.strftime('%H:%M') estimates["autotime"] = autotime autohour = autotimeinit.strftime('%H') autohour = autohour + ":00" estimates["time"] = autohour estimates["value"] = estimate autoday = autotimeinit.strftime('%A') estimates["day"] = autoday estimates["value"] = estimate # last_hour_date_time = datetime.now() - timedelta(hours = 1) # list_datetime_capture.append(last_hour_date_time.strftime('%Y-%m-%d %H:%M:%S')) total_estimates.append(estimates) # print(len(total_estimates)) engine1 = create_engine('sqlite:///UberPricesNew.sqlite') session1 = Session(engine1) # Note that adding to the session does not update the table. It queues up those queries. for values in total_estimates: for value in values["value"]: session1.add( UberPricesNew(place=values["place"], lat=values["geometry"][0], lon=values["geometry"][1], dist=value["distance"], display_name=value["display_name"], duration=value["duration"], estimate=value["estimate"], high_estimate=value["high_estimate"], low_estimate=value["low_estimate"], autotime=values["autotime"], time=values["time"], day=values["day"], company="Uber")) # commit() flushes whatever remaining changes remain to the database, and commits the transaction. # print("uber done") session1.commit()
# last_hour_date_time = datetime.now() - timedelta(hours = 1) # list_datetime_capture.append(last_hour_date_time.strftime('%Y-%m-%d %H:%M:%S')) lyft_total_estimates.append(estimates) # lyft_total_estimates print(len(lyft_total_estimates)) # Create our database engine engine = create_engine('sqlite:///LyftPricesNew.sqlite') # Base.metadata.create_all(engine) # The ORM’s “handle” to the database is the Session. from sqlalchemy.orm import Session session = Session(engine) # Note that adding to the session does not update the table. It queues up those queries. for values in lyft_total_estimates: for value in values["value"]: session.add(LyftPricesNew(place=values["place"], lat=values["geometry"][0], lon=values["geometry"][1], dist=value["estimated_distance_miles"], display_name = value["display_name"], duration = value["estimated_duration_seconds"], estimate = str(value["estimated_cost_cents_min"]//100) + " - " +str(value["estimated_cost_cents_max"]//100), high_estimate = value["estimated_cost_cents_max"]//100, low_estimate = value["estimated_cost_cents_min"]//100, autotime=values["autotime"], time=values["time"] )) # commit() flushes whatever remaining changes remain to the database, and commits the transaction. session.commit() time.sleep(60)
def collect_lyft_data(): lyft_total_estimates = [] estimates = {} #Global Learning Center GA TECH: 33.7762° N, 84.3895° W for place in places: estimates = {} url = "https://api.lyft.com/v1/cost?start_lat=33.7762&start_lng=-84.3895&end_lat=" + str( place["location"][0]) + "&end_lng=" + str(place["location"][1]) # requests.get(url).json() estimate = requests.get(url).json()["cost_estimates"] #print(estimate) #estimate10 estimates["place"] = place["name"] estimates["geometry"] = place["location"] autotimeinit = datetime.now() autotime = autotimeinit.strftime('%H:%M') estimates["autotime"] = autotime autohour = autotimeinit.strftime('%H') autohour = autohour + ":00" estimates["time"] = autohour autoday = autotimeinit.strftime('%A') estimates["day"] = autoday estimates["value"] = estimate # last_hour_date_time = datetime.now() - timedelta(hours = 1) # list_datetime_capture.append(last_hour_date_time.strftime('%Y-%m-%d %H:%M:%S')) lyft_total_estimates.append(estimates) # lyft_total_estimates # print(len(lyft_total_estimates)) # Create our database engine engine = create_engine('sqlite:///LyftPricesNew.sqlite') # Base.metadata.create_all(engine) # The ORM’s “handle” to the database is the Session. session = Session(engine) # Note that adding to the session does not update the table. It queues up those queries. for values in lyft_total_estimates: for value in values["value"]: session.add( LyftPricesNew( place=values["place"], lat=values["geometry"][0], lon=values["geometry"][1], dist=value["estimated_distance_miles"], display_name=value["display_name"], duration=value["estimated_duration_seconds"], estimate=str(value["estimated_cost_cents_min"] // 100) + " - " + str(value["estimated_cost_cents_max"] // 100), high_estimate=value["estimated_cost_cents_max"] // 100, low_estimate=value["estimated_cost_cents_min"] // 100, autotime=values["autotime"], time=values["time"], day=values["day"], company="Lyft")) # commit() flushes whatever remaining changes remain to the database, and commits the transaction. # print("lyft done") session.commit()