如何在Azure Function中返回保留表格结构的DataFrame?
在Azure Function中保留DataFrame表格结构的输出方案
以下是几种实用的实现方式,均能保留DataFrame的表格结构,适配不同的调用场景:
输出结构化JSON
利用pandas的to_json()方法,指定orient='table'可生成符合JSON Table Schema标准的结构化输出,包含列名、数据类型等元信息,调用方可轻松还原成DataFrame。若仅需数据列表,改用orient='records'更简洁。import azure.functions as func import pandas as pd def main(req: func.HttpRequest) -> func.HttpResponse: # 模拟文本输入处理生成DataFrame input_text = req.params.get('text') or req.get_body().decode('utf-8') df = pd.DataFrame({ '文本片段': [input_text[:10], input_text[10:20]], '字符长度': [len(input_text[:10]), len(input_text[10:20])] }) # 转换为带结构的JSON structured_json = df.to_json(orient='table', force_ascii=False) return func.HttpResponse( structured_json, mimetype='application/json', status_code=200 )输出CSV格式
若调用方需要可直接导入Excel、Tableau等工具的格式,将DataFrame转为CSV字符串返回,也可设置响应头让结果作为附件下载。import azure.functions as func import pandas as pd def main(req: func.HttpRequest) -> func.HttpResponse: # 生成示例DataFrame df = pd.DataFrame({'产品ID': ['P001', 'P002'], '库存数量': [150, 80]}) # 转换为CSV字符串(不含索引列) csv_content = df.to_csv(index=False, encoding='utf-8') # 作为普通CSV响应返回 return func.HttpResponse( csv_content, mimetype='text/csv', status_code=200 ) # 可选:设置为附件下载 # return func.HttpResponse( # csv_content, # mimetype='text/csv', # headers={'Content-Disposition': 'attachment; filename="inventory.csv"'}, # status_code=200 # )输出HTML表格
针对Web端调用场景,可直接返回HTML格式的表格,便于直观展示数据结构。import azure.functions as func import pandas as pd def main(req: func.HttpRequest) -> func.HttpResponse: df = pd.DataFrame({'姓名': ['张三', '李四'], '部门': ['研发部', '市场部']}) # 生成HTML表格(不含索引,添加边框) html_table = df.to_html(index=False, border=1) return func.HttpResponse( f'<html><body><h3>处理结果</h3>{html_table}</body></html>', mimetype='text/html', status_code=200 )
内容的提问来源于stack exchange,提问作者Hammad Hassan Khan
相关产品推荐
相关产品推荐

