1

I created the function below to read from an API, it happens that I need the result to return in a datatrame, each key being a value, does anyone know how I can do this? When I transform into dataframe it doesn't come columnar, it just brings the values ​​in the dataframe as json.

Function:

    def get_ip_list(self):
        response_all = list()

        while True:
            url = "www.apitest.com/testing/"
            response = requests.request("GET", url)

            try:
                if response.status_code != 200:
                    self.logger.log_info(f"An error has occured. Status code of API Page: {response.status_code}")
                else:
                    response = response.json()
                if response.count('no blacklist monitors found in account') > 0:
                    break
            except Exception as e:
                break
            response_all += response

            self.counter += 1
        df = pd.DataFrame.from_records(response_all)
        
        print(response_all)

Sample:

[[{'ID': '5a6sd465sdf465asd498a798a', 'Type': 'IPv4', 'Target': '300.400.500.600', 'Add_Date': 1519929239, 'Last_Check': 1658187303, 'Status': 'Active', 'Label': '', 'Contact_List_ID': 'f56sdf465sdf465sd4f', 'Blacklisted_Count': '0', 'Blacklisted_On': None, 'Links': {'Report_Link': 'https://hetrixtools.com/report/blacklist/456465465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/545665/'}}, {'ID': 'mdkljkljsdflkjsd123232', 'Type': 'IPv4', 'Target': '200.109.500.900', 'Add_Date': 1519929239, 'Last_Check': 1658188249, 'Status': 'Active', 'Label': '', 'Contact_List_ID': 'jfkldjflksjflkjsdf5456465', 'Blacklisted_Count': '0', 'Blacklisted_On': None, 'Links': {'Report_Link': 'https://hetrixtools.com/report/blacklist/23565456465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/2156465465/'}}, {'ID': '165sdf465s4df654d56', 'Type': 'IPv4', 'Target': '155.111.255.300', 'Add_Date': 1519929239, 'Last_Check': 1658187644, 'Status': 'Active', 'Label': '', 'Contact_List_ID': 'ds54f65sd4f65d4sf654df65', 'Blacklisted_Count': '0', 'Blacklisted_On': None, 'Links': {'Report_Link': 'https://hetrixtools.com/report/blacklist/45465465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/5465465/'}}], {'Meta': {'Total_Records': '24576'}, 'Links': {'Pages': {'Prev': 'https://api.hetrixtools.com/v2/a8b6c925e6d01613deaf5f5c48581f8f/blacklist/monitors/22/1024/'}}}]

1 Answer 1

1

I'm assuming the sample you've provided is the contents of response_all. To create DataFrame from it you can do:

df = pd.DataFrame(response_all[0])
print(df.to_markdown(index=False))

Prints:

ID Type Target Add_Date Last_Check Status Label Contact_List_ID Blacklisted_Count Blacklisted_On Links
5a6sd465sdf465asd498a798a IPv4 300.400.500.600 1519929239 1658187303 Active f56sdf465sdf465sd4f 0 {'Report_Link': 'https://hetrixtools.com/report/blacklist/456465465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/545665/'}
mdkljkljsdflkjsd123232 IPv4 200.109.500.900 1519929239 1658188249 Active jfkldjflksjflkjsdf5456465 0 {'Report_Link': 'https://hetrixtools.com/report/blacklist/23565456465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/2156465465/'}
165sdf465s4df654d56 IPv4 155.111.255.300 1519929239 1658187644 Active ds54f65sd4f65d4sf654df65 0 {'Report_Link': 'https://hetrixtools.com/report/blacklist/45465465/', 'Whitelabel_Report_Link': 'https://rbl.allin.com.br/report/blacklist/5465465/'}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.