You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

50 lines
1.6 KiB

import pandas as pd
from sqlalchemy import create_engine
def search(s):
# Create the database engine and session
engine = create_engine('sqlite:///fb_sweden.db')
if any([all([s[:2]=='07', len(s)==10]), all([s[:2]=='46', len(s)==11])]):
column_search = 'phone'
column_find = 'id'
else:
column_search = 'id'
column_find = 'phone'
# Construct SQL query.
sql = f'select * from sweden where {column_search} = {s}'
# Make a df from query.
df = pd.read_sql(sql, engine)
if len(df) > 0:
# Format data returned.
name = f"{df['first_name'][0]} {df['last_name'][0]}"
r = str(df[column_find][0])
if column_find == 'phone':
r = f'0{r[2:4]} - {r[4:7]} {r[7:9]} {r[9:]}'
column_find = 'telefon'
column_search = 'ID'
else:
column_find = 'ID'
column_search = 'Telefon'
df = pd.DataFrame(df.transpose())
df.columns = [s]
df.rename({'first_name': 'Förnamn',
'last_name':'Efternamn',
'phone':'Telefon', 'email':'Epost',
'sex': 'Kön',
'city': 'Ort',
'relation_status':'Relation',
'work': 'Arbetsplats',
'place': 'Adress',
'year': 'År',
'born': 'Född',
'id': 'ID'
}, axis=0, inplace=True)
df.dropna(inplace=True)
df = df.drop(column_search)
return ({'find': r, 'column_find': column_find, 'name': name, 'df':df})