Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alimentar DataFrame com loop em APIs

Como realizar um loop lendo urls, e inserindo os dados em um DataFrame e após gerar um arquivo csv com as informações, segue como estou tentando realizar:

codigo : serv = ['serv1','serv2','serv3','serv4','serv5','serv6','serv7','serv8'] port = '9080' lista_dataframes = [] for servidor in serv: url = 'http://'+servidor+':'+port+'/api/v1/cluster/summary' response = requests.get(url) res = json.loads(response.text) df = json_normalize(res) df['servidor'] = servidor df['datehour'] = datahora df['slotsUsedPerc'] = ((df['slotsUsed'] / df['slotsTotal'])100).round() df['memUsedPerc'] = (((df['totalMem']-df['availMem']) / df['totalMem'])100).round() df['cpuUsedPerc'] = (((df['totalCpu']-df['availCpu']) / df['totalCpu'])*100).round() df = df[['servidor','datehour','memUsedPerc','cpuUsedPerc','totalCpu','supervisors','tasksTotal','executorsTotal','slotsTotal','slotsUsed','slotsFree','slotsUsedPerc']] df.to_csv("nomedoarquivo.csv", header = False) ..... Apartir desse momento não estou conseguindo inserir o loop adicionando no DataFrame criado, somente aparece o ultimo sevidor do loop.

1 resposta
solução!

você pode criar um dataframe vazio antes do loop: df_final = pd.DataFrame()

e no final do for adicionar: df_final = df_final.append(df)

e ao inves de salvar o df em csv, salve o df_final