如何用Pandas生成Rest API期望的JSON响应(无需硬编码结构)
解决方案
你可以通过以下步骤动态生成API要求的JSON格式,无需硬编码structure部分:
- 生成
structure字典:遍历DataFrame的列名,将每个列名转换为首字母大写的形式作为键,原列名作为值。 - 生成
data列表:使用Pandas的to_dict(orient='records')方法直接获取不含索引的记录列表,这个方法会自动把每一行转成字典,键是列名。 - 组合并转为JSON:把上述两部分组合成一个字典,再用
json.dumps()转为JSON字符串。
完整代码示例
import pandas as pd import json # 示例DataFrame df = pd.DataFrame({ 'col1': ['1', '3'], 'col2': ['2', '4'] }) # 生成structure:列名首字母大写映射原列名 structure = {col.capitalize(): col for col in df.columns} # 生成data:不带索引的记录列表 data = df.to_dict(orient='records') # 组合成目标格式的字典 target_dict = { 'structure': structure, 'data': data } # 转为JSON字符串 target_json = json.dumps(target_dict, indent=4) print(target_json)
输出结果
{ "structure": { "Col1": "col1", "Col2": "col2" }, "data": [ { "col1": "1", "col2": "2" }, { "col1": "3", "col2": "4" } ] }
如果你的列名有特殊的大写规则(比如每个单词首字母大写),可以把col.capitalize()替换为col.title(),或者自定义字符串处理函数来适配需求。
内容的提问来源于stack exchange,提问作者VN-
相关产品推荐
相关产品推荐

