如何将API返回的Dataframe高效转换为指定格式的JSON?
问题说明
从API获取的DataFrame字符串形式如下:
0 2023-04-17 4.82 2023-04-18 4.82 2023-04-19 4.82 2023-04-20 4.82 2023-04-21 4.81
调用df.to_json(orient='records')得到的结果不符合需求:
[{"0":4.82},{"0":4.82},{"0":4.82},{"0":4.82},{"0":4.81}]
期望输出的JSON格式:
[{"Date":"2023-04-17", "Rate":4.82},{"Date":"2023-04-18", "Rate":4.82},{"Date":"2023-04-19", "Rate":4.82},{"Date":"2023-04-20", "Rate":4.82},{"Date":"2023-04-21", "Rate":4.81}]
要求转换过程高效,适配大数据量。
高效解决方案
1. 修正DataFrame结构
当前DataFrame存在无效表头、列数据混存、空行问题,用pandas矢量化操作快速清理:
# 过滤空行并重置索引 df = df.dropna().reset_index(drop=True) # 拆分单一列为Date和Rate两列 df[['Date', 'Rate']] = df[0].str.split(' ', expand=True) # 转换Rate为数值类型(保证JSON输出为数值而非字符串) df['Rate'] = df['Rate'].astype(float) # 删除原无用列 df = df.drop(columns=[0])
2. 生成目标JSON
直接调用原生to_json方法,指定orient='records'即可:
target_json = df.to_json(orient='records')
效率说明
所有操作均为pandas矢量化处理,避免逐行循环,处理百万级数据也能保持高效,远快于手动遍历生成JSON的方式。
内容的提问来源于stack exchange,提问作者VegDork
相关产品推荐
相关产品推荐

