chxy2048 2022-09-26 23:59 采纳率: 50%
浏览 110
已结题

python批量发送get请求获取api返回数据后写入excel问题

想要批量发送Get请求获取api返回的数据,并且将数据导出为excel表格
headers = {
    "Authorization": "Bearer " + token
}
with open("url.txt", "r", encoding="utf-8") as read_url:
    url_get = read_url.readlines()
    for li in url_get:
        response = requests.get(url=li, headers=headers)
        content_data_total = json.loads(data_num_response.text)["data"]["total"]
        result = {'taskId':li.replace("*****", "").replace("&size=1", "").replace("\n",""),
                                           'data_amount':content_data_total}
        print(result)


打印的数据是这样的

img

尝试过的方法

        def data_excel():
            data_f = pd.DataFrame(list(result_get_notexported_data_num))
            # 指定字段顺序
            data_order = ["taskId", "data_amount"]
            data_f = data_f[data_order]
            # 将列名转换为中文
            data_columns_map = {
                "taskId": "任务Id",
                "data_amount": "总量",
            }
            data_f.rename(columns=data_columns_map, inplace=True)
            # 指定生成的表格名称
            data_filepath = pd.ExcelWriter(current_date + "   数据.xlsx")
            # 替换空单元格
            data_f.fillna("", inplace=True)
            # 输出
            data_f.to_excel(data_filepath, encoding="utf-8", index=False)
            # 保存表格
            data_filepath.save()
            # 转写为html
            data_html_f = pd.read_excel(current_date + "   数据.xlsx")
            data_html_f2 = status_html_f.drop(labels="任务Id", axis=1)  # 删除taskId列
            data_html_f2.to_html(current_date + "   数据.html", encoding="utf_8_sig", header=True,
                                   index=False)


        if __name__ == '__main__':
            data_excel()
报错:
**raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Index(['taskId', 'data_amount'], dtype='object')] are in the [columns]"**

我想要把这些数据以taskId和data amount为表头,写入excel表格中,并将excel表格转换为html格式,请教该如何实现!谢谢!

  • 写回答

1条回答 默认 最新

  • Java大魔王 2022-09-27 08:49
    关注

    导出到excel和转换成html用pandas几行代码就可以了

        data = [{'taskId': 1, 'data_amount': 0},
                    {'taskId': 2, 'data_amount': 0},
                    {'taskId': 3, 'data_amount': 0},
                    {'taskId': 4, 'data_amount': 0},
                    {'taskId': 5, 'data_amount': 0}]
        df = pd.DataFrame(data)
        # 导出excel
        df.to_excel("test.xlsx", index=False)
        # 转换html表格
        html_table = df.to_html('测试.html', index=False)
        print(html_table )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月28日
  • 已采纳回答 9月28日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题