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 PdfiumViewer pdf转图片
  • ¥15 利用Java连接API接口总是出问题
  • ¥15 请教一个关于镜头标定,棋盘格格子大小的问题(畸变测试)
  • ¥15 安装GroudingDINO RuntimeError: Error compiling objects for extension
  • ¥15 关于推送项目到github的问题
  • ¥15 急!C++指针编写相关的问题
  • ¥15 kerberos身份认证配置问题
  • ¥30 用python写一个多签情况下波场的代理资源和回收资源
  • ¥15 matlab学期例题代码答疑
  • ¥15 在线手电筒追加按钮JS