You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用to_json(orient="records")转JSON仅得值无键的问题

解决Pandas多级索引Series转JSON缺失键的问题

我来帮你搞定这个JSON转换的问题!你的核心问题在于:quarterly_churn_count["Churn"]是一个带多级索引(year和quarter)的Series,直接把它塞进字典再转DataFrame的话,Pandas会把整个Series当成单一列的值,转JSON时自然只输出数值,丢失了索引里的year和quarter信息。

解决方案步骤:

  1. 先把多级索引的Series转换成普通DataFrame,同时将索引(year和quarter)转为独立列
  2. 再用to_json(orient="records")生成包含完整键值对的JSON数组

具体代码实现:

# 第一步:将带多级索引的Series转为DataFrame,重置索引让year和quarter成为列
churn_df = quarterly_churn_count["Churn"].reset_index()

# 第二步:转成目标格式的JSON
final = churn_df.to_json(orient='records')
print(final)

转换后的JSON示例:

[
  {"year":2008,"quarter":1,"Churn":1070},
  {"year":2013,"quarter":1,"Churn":31},
  {"year":2013,"quarter":2,"Churn":47},
  {"year":2013,"quarter":3,"Churn":57},
  ...
]

原代码失效的原因:

你之前的代码把整个Series作为字典的单个值,生成的DataFrame只有一列,列名是quarterly_churn_count["Churn"],值是整个Series的数值数组,所以转JSON时只会输出这个数组,自然丢失了year和quarter的键。而通过reset_index(),我们把原来的索引层级拆成了单独的列,这样每个行对象就会包含year、quarter和Churn三个完整的键值对,完美解决你的问题。

内容的提问来源于stack exchange,提问作者sangeetha sivakumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:24