first commit

This commit is contained in:
wes
2024-05-20 12:20:38 -04:00
commit 0ce13cf8a4
5 changed files with 419 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
'''
Importing POI data from attractions.io api
'''
#!/usr/bin/env python3
from datetime import datetime, date
import json, requests, psycopg2
from psycopg2 import sql
db_params = {
'dbname': 'gp0',
'user': 'kuhnobowls',
'password': 'saddog095',
'host': '192.168.88.5',
'port': '5432',
'options': '-c search_path=knoebels'
}
def log_to_database(table_name, data):
with psycopg2.connect(**db_params) as conn:
with conn.cursor() as cursor:
columns = len(data[0])
query = sql.SQL("INSERT INTO {table} VALUES ({values})").format(
table=sql.Identifier(table_name),
values=sql.SQL(', ').join(sql.Placeholder() * columns)
)
cursor.executemany(query, data)
conn.commit()
def generic_query(q):
ret = []
with psycopg2.connect(**db_params) as conn:
with conn.cursor() as cursor:
cursor.execute(q)
rows = cursor.fetchall()
col_names = [desc[0] for desc in cursor.description]
for row in rows:
ret.append(row)
return ret
data = None
with open('records.json', 'r', encoding='utf-8') as file:
data = json.load(file)
rows = []
for poi in data['Item']:
aoi_id = poi['_id']
Name = poi['Name']
AbbreviatedName = poi['AbbreviatedName']
Summary = poi['Summary']
Keywords = poi['Keywords']
DefaultImage = poi['DefaultImage']
Location = poi['Location']
Featured = poi['Featured']
WayfindingEnabled = poi['WayfindingEnabled']
VisibleOnMap = poi['VisibleOnMap']
Category = poi['Category']
Parent = poi['Parent']
try:
MenuURL = poi['MenuURL']
except:
MenuURL = None
try:
MinimumHeightRequirement = poi['MinimumHeightRequirement']
except:
MinimumHeightRequirement = None
try:
MinimumUnaccompaniedHeightRequirement = poi['MinimumUnaccompaniedHeightRequirement']
except:
MinimumUnaccompaniedHeightRequirement = None
try:
MaximumHeightRequirement = poi['MaximumHeightRequirement']
except:
MaximumHeightRequirement = None
try:
MinimumAgeRequirement = poi['MinimumAgeRequirement']
except:
MinimumAgeRequirement = None
try:
MinimumUnaccompaniedAgeRequirement = poi['MinimumUnaccompaniedAgeRequirement']
except:
MinimumUnaccompaniedAgeRequirement = None
try:
MaximumAgeRequirement = poi['MaximumAgeRequirement']
except:
MaximumAgeRequirement = None
try:
RestrictionSummary = poi['RestrictionSummary']
except:
RestrictionSummary = None
row = [aoi_id, Name, AbbreviatedName, Summary, Keywords, DefaultImage, Location, Featured, WayfindingEnabled, VisibleOnMap, Category, Parent, MenuURL, MinimumHeightRequirement, MinimumUnaccompaniedHeightRequirement, MaximumHeightRequirement, MinimumAgeRequirement, MinimumUnaccompaniedAgeRequirement, MaximumAgeRequirement, RestrictionSummary]
rows.append(row)
cats = []
for cat in data['Category']:
aoi_id = cat['_id']
Name = cat['Name']
Parent = cat['Parent']
row = [aoi_id, Name, Parent]
cats.append(row)
log_to_database('LZ_attractions_io_categories', cats)
#log_to_database('LZ_attractions_io_poi', rows)