首页 > 解决方案 > 在循环中将 JSON 从 URL 添加到 DataFrame

问题描述

我正在尝试下载 JSON 数据并将其添加到 DataFrame,但每个请求的结果限制为 10 个。

循环和偏移有效,但我无法将新数据添加到 DataFrame,它每次都会替换它。

我尝试使用 df2df2 = df.append(df)并附加创建每个循环的 df,但这也不起作用。

offset = 10
while offset < 1000:
    url = f"https://someurl/?limit=10&offset={offset}"
    data = pd.read_json(url)
    df = pd.json_normalize(data['results'])
    offset = offset + 10
    
    df = df.append(df)
    print(df)

标签: pythonpandasdataframe

解决方案


见下文。
这个想法是将df收集到列表中并连接列表项。
请注意,由于 URL 是虚拟的,因此无法测试代码

import pandas as pd

offset = 10
df_list = []
while offset < 100:
  data = pd.read_json(f"https://someurl/?limit=10&offset={offset}")
  df_list.append(pd.json_normalize(data['results']))
  offset = offset + 10
merged_df = pd.concat(df_list)
print(merged_df)

推荐阅读