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

如何将Pandas分组结果转换为无表头的JSON字典数组?

问题:将分组后的DataFrame转换为无表头的JSON字典数组

我有一个名为grouped的分组结果DataFrame,数据如下:

long_url            counts 
3   reddit.com  542 
2   linkedin.com    529 
4   twitter.com 525 
1   google.com  502 
0   github.com  476 
5   youtube.com 469

希望将其转换为如下格式的JSON字典数组:

[{"reddit.com": 542}, {"linkedin.com" : 529}, ...]

当前使用以下代码:

import json

grou=json.dumps(grouped.reset_index(drop=True).to_dict(orient='records'))
grou

得到的结果是带表头的,不符合预期:

'[{"long_url": "reddit.com", "counts": 542}, {"long_url": "linkedin.com",   "counts": 529}, {"long_url": "twitter.com", "counts": 525}, {"long_url": "google.com", "counts": 502}]'

请问如何实现不带表头的目标?


解决方案

你可以通过遍历DataFrame的每一行,将每行的long_url作为键、counts作为值构造单个字典,再把这些字典收集成列表后转成JSON:

import json

# 遍历每行构造目标字典列表
result_list = [{row['long_url']: row['counts']} for _, row in grouped.iterrows()]
# 转换为JSON字符串
grou = json.dumps(result_list)
print(grou)

执行后会得到你需要的格式:

[{"reddit.com":542},{"linkedin.com":529},{"twitter.com":525},{"google.com":502},{"github.com":476},{"youtube.com":469}]

如果你的DataFrame行数较多,想要更高效的处理,可以用apply方法:

import json

result_list = grouped.apply(lambda row: {row['long_url']: row['counts']}, axis=1).tolist()
grou = json.dumps(result_list)

这两种方式都能直接生成无表头的字典数组,再转成符合要求的JSON格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:19:59