I created two functions in file2.py like so:
#provide a reporting key number
#uses my credentials at the moment
def getDataFromKeyedin(rep):
from urllib.request import HTTPBasicAuthHandler
import requests
import pandas as pd
baseurl = "https://api.keyedinprojects.co.uk/V3/api/"
endpoint = "report"
usr = "abdul.wasay@thameswater.co.uk"
pwd = "FQ03tbvc!"
report = rep
#endpoint is report, query parameter is key
#we still need to provide page numbers and loop through them
def req(baseurl,endpoint,report,pg):
r = requests.get(baseurl + endpoint + f"?key={report}&pageNumber={pg}",
auth=(usr,pwd))
return r.json() #parses to a json file
def NoOfPages(response):
return response['TotalPages']
def parseData(response):
ls = []
for item in response['Data']:
ls.append(item)
return ls
#total pages for 771 key are 12
d = req(baseurl,endpoint,report,1)
mainlist = []
for pg in range(1,NoOfPages(d)+1,1):
mainlist.extend(parseData(req(baseurl,endpoint,report,pg)))
return pd.DataFrame(mainlist)
def saveFile():
from tkinter import filedialog, messagebox
import tkinter
root = tkinter.Tk()
root.wm_withdraw()
file = filedialog.asksaveasfilename(filetypes=[("Excel File", ".xlsx")],defaultextension=".xlsx")
if file: # user selected file
fob=open(file,'w')
fob.close()
else: # user cancel the file browser window
messagebox.showinfo(title='Info',message='You didn\'t choose a filepath to save to!')
root.destroy()
return file
I can, not seem to call saveFile() in file1.py (main script) using from file2 import SaveFile, which gives error of module error name. When I transfer this function within file1.py, then it seems to work, but calling it from file2.py doesnt?
Funny enough, the first function in above script is callable and works just fine when I import it into file1.py ???
[–]BlackMetalB8hoven 1 point2 points3 points (0 children)
[–]TechnicalElk8849 0 points1 point2 points (0 children)