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

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 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!