Any ideas on how to make it so that I dont get Error 429: Too Many Request

61 Views Asked by At

Any ideas on how to make it so that I dont get Error 429: Too Many Request

Just a beginner here, I am trying to get ipData from my database which consists of Office365 Audit data..

Am i using the wrong library for such task?

def ipInfo(addr=''):
    from urllib.request import urlopen
    from json import load
    if addr == '':
        url = 'https://ipinfo.io/json'
    else:
        url = 'https://ipinfo.io/' + addr + '/json'
    res = urlopen(url)
    JSONtext = ''
    #response from url(if res==None then check connection)
    data = load(res)
    #will load the json response into data
    for attr in data.keys():
        #will print the data line by line
        if attr == 'ip':
            JSONtext = JSONtext + '{' + '"' + ''.join(attr) + '"' + ':' + '"' + ''.join(data[attr]) + '"'
        elif attr == 'readme':
            JSONtext = JSONtext + '"'+ ''.join(attr) + '"'+':'+'"' + ''.join(data[attr]) + '"' + '}'
        else:
            JSONtext = JSONtext  + '"'+ ''.join(attr) +'"'+':'+'"'+  ''.join(data[attr])  + '"'
    return JSONtext
#get table list
crsr = connection().cursor()
crsr.execute(
    "SELECT id,creationdate, userids, operations,auditdata ->> 'ClientIP' AS client_ip,ipdata FROM audits  WHERE operations ILIKE '%login%' LIMIT 5;")
tpl = crsr.fetchall()
crsr.close()

#append list to dictionary
dict = {"id":[],"creationdate":[],"userids":[],"operations":[],"clientip":[],"ipdata":[]}

for items in tpl:
    #converts item into list
    datalist = list(items)
    print ('Processing')

    for i in datalist:
        if i  == datalist[0]:
            dict["id"].append(i)
        elif i == datalist[1]:
            dict["creationdate"].append(i)
        elif i == datalist[2]:
            dict["userids"].append(i)
        elif i == datalist[3]:
            dict["operations"].append(i)
        elif i == datalist[4]:
            dict["clientip"].append(i)
            ip = i
            ip = ''.join(ip)
        else:
            dict["ipdata"].append(ipInfo(ip))
            time.sleep(6)

print('Task Completed')
df = pd.DataFrame.from_dict(dict)
0

There are 0 best solutions below