json之将 pandas 数据框写入 json 文件
pengyingh
阅读:160
2025-06-02 22:19:02
评论:0
我有一个小数据框,想转换为 json 文件。我希望 json 文件采用良好的格式(带有缩进等)。另外,我希望数据框的其中一列成为 json 数据的关键。这是一个例子:
输入数据框:
start_date Nums ID tag
51 2016-03-13 00:00:00 3110 2 787623
55 2016-03-17 00:00:00 676754 1 787623
json 的期望输出格式:[注意:索引 51 和 55 消失了,标记值 78723 已成为 'key']。以下所需的
{
"787623": [{
"start_date": "2016-03-13",
"Nums": "3110",
"ID": "2"
}, {
"start_date": "2016-03-17",
"Nums": "676754",
"ID": "1"
}]
}
目前,我正在做一个简单的 df.to_json(jsonFile, date_format = 'iso', orient = 'records') 生成一个更紧凑的 json 文件,如下所示:
[{"start_date":"2016-03-13T00:00:00.000Z","Nums":3110,"ID":2,"tag":787623},{"start_date":"2016-03-17T00:00:00.000Z","Nums":676754,"ID":1,"tag":787623}]
但是,我喜欢格式精美的样式。
感谢任何帮助。
请您参考如下方法:
DataFrame.to_dict() 方法有很多关于字典布局的选项。然后,您可以使用 json 模块函数中的 indent 选项来创建格式良好的字符串。
例子:
d={}
for tag,group in df.set_index('tag').groupby(level='tag'):
d[str(tag)]=group.to_dict(orient='records')
print(json.dumps(d,indent=1))
给予
{
"787623": [
{
"ID": 2,
"Nums": 3110,
"start_date": "2016-03-13"
},
{
"ID": 1,
"Nums": 676754,
"start_date": "2016-03-17"
}
]
}
如果您在标签字段中没有重复条目,则单行即可。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



