程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Python 拆分 JSON 文件的最简单方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Python 拆分 JSON 文件的最简单方法?

开发过程中遇到使用 Python 拆分 JSON 文件的最简单方法的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Python 拆分 JSON 文件的最简单方法的解决方法建议,希望对你解决使用 Python 拆分 JSON 文件的最简单方法有所启发或帮助;

我正在对从 2015 年到 2020 年的世界幸福报告进行交互式可视化。数据被分成 6 个 csv 文件。使用熊猫,我成功地清理了数据并将它们连接成一个具有以下格式的大 JsON 文件:

[
  {
    "Country": "Switzerland","Year": 2015,"Happiness Rank": 1,"Happiness score": 7.587000000000001,},{
    "Country": "Iceland","Happiness Rank": 2,"Happiness score": 7.561,{
    "Country": "Switzerland","Year": 2016,"Happiness score": 7.5089999999999995,"Happiness Rank": 3,"Happiness score": 7.501,"Year": 2017,"Happiness score": 7.49399995803833,"Happiness score": 7.801,}
]

现在,我想以编程方式格式化 JsON 文件,使其具有以下格式:

{
    "2015": {
        "Switzerland": {
            "Happiness Rank": 1,"Happiness score": 7.587000000000001
        },"Iceland": {
            "Happiness Rank": 2,"Happiness score": 7.561
        }
    },"2016": {
        "Switzerland": {
            "Happiness Rank": 2,"Happiness score": 7.5089999999999995
        },"Iceland": {
            "Happiness Rank": 3,"Happiness score": 7.501
        }
    },"2017": {
        "Switzerland": {
            "Happiness Rank": 3,"Happiness score": 7.49399995803833
        },"Iceland": {
            "Happiness Rank": 1,"Happiness score": 7.801
        }
    }
}

它必须以编程方式完成,因为有超过 900 个不同的(国家、年份)对。我想要这种格式的 JsON,因为它使 JsON 文件更具可读性,并且@R_674_11222@选择合适的数据。如果我想在 2015 年获得冰岛的排名,那么我可以做 data[2015]["Iceland"]["Happiness Rank"]

有谁知道在 Python 中最简单/最方便的方法吗?

解决方法

我假设您拥有创建此 JSON 的原始 Pandas 数据框。使用熊猫,您可以执行 df = df.groupby(['Year','Country'])。然后,您可以按照 pandas groupby to nested json 中的步骤将其转换为 JSON。

,

您@R_785_@R_801_10098@@ itertools 模块中的 groupby 很有用。我能够做到这一点

import itertools
groups = itertools.groupby(data,lambda x: x["Year"])
newDict = {str(year): {entrY["Country"]:entry for entry in group} for year,group in groups}

其中 data 是您提供的示例形式的数据

它会保留Dict中的原始字段,但可以通过这种方式轻松删除

for countries in newDict.values():
    for c in countries.values():
        del c["Year"]
        del c["Country"]

大佬总结

以上是大佬教程为你收集整理的使用 Python 拆分 JSON 文件的最简单方法全部内容,希望文章能够帮你解决使用 Python 拆分 JSON 文件的最简单方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。