动态存储API数据



我必须从API中提取数据,并返回带有所需信息的报告。例如:

request_data = {'url1 : https://abcd.com','url2 : https://dfgh.com','url3 : https://hjkl.com',column : (name,Ecode,salary,status)}
x1 =  '{ "name":"John", "age":30, "city":"New York"}'
x2 = '{ "name":"John", "age":30, "Ecode":"4567"}'
x3 = '{ "name":"John", "salary":30k, "Status":"Yes"}'

这里request_data是我通过消息队列接收的get请求,x1、x2、x3是我们在运行python的get请求后获得的值。一旦我们得到数据,我将其转换为pandas数据帧,并使用pandas的数据帧合并来创建一个新的数据帧。

但是在get请求中url的数量不会是3。它将是2,5,1等。因此,我们不能将变量明确命名为x1、x2、x3作为存储数据的变量。

我想让代码更加动态,这样我们从消息队列中获得的任何数量的url请求,都需要从这些url中获得数据,并创建一个具有所需列的新数据帧。

有人能在这里帮我吗?或者指向一些参考链接。

您可以首先创建一个名为cumulative_df的空数据帧,在其中您可以收集不同API调用的响应。

然后,循环浏览URL列表;在循环中,对于每个URL:

  1. 进行API调用(例如,通过使用请求库(
  2. 将JSON响应转换为数据帧(例如,使用pandas.JSON_normalize(
  3. 将json_normalize创建的数据帧添加到accumulate_df(例如,使用pandas.concat(

这可以用于列表中任意数量的URL。

编辑:如果数据帧无法连接/附加,则可以使用计数器命名变量,并在循环内部将数据帧分配给它。首先,"x"+str(i(将得到x1。然后将计数器增加1,循环的下一个实例将创建x2,依此类推

最新更新