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, dtype={'last_name':str, 'first_name':str}) 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' if df['born'][0] != None: df['born'] = df['born'].apply(lambda x: f'{x[6:]}-{x[:2]}-{x[3:5]}') 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': 'Från', 'relation_status':'Relation', 'work': 'Arbetsplats', 'place': 'Bor i', '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})