【问题标题】:Parsing JSON into pandas dataframe in Python 3在 Python 3 中将 JSON 解析为 pandas 数据帧
【发布时间】:2020-07-14 15:34:11
【问题描述】:

我在将 JSON 代码导入 python 中的 pandas 数据帧时遇到了一些麻烦。这是我的 JSON 代码的样子:

    {
    "results": [
        {
            "events": [
                {
                    "id": 132,
                    "name": "rob",
                    "city": "nyc",
                    "age": 55
                },
                {
                    "id": 324,
                    "name": "sam",
                    "city": "boston",
                    "age": 35,
                    "favColor": "green"
                },
                                {
                    "id": 556,
                    "name": "paul",
                    "age": 23,
                    "favColor": "blue"
                },
                                {
                    "id": 635,
                    "name": "kyle",
                    "city": "nyc"
                }
            ]
        }
    ],
    "responseinfo": {
        "inspectedCount": 295822,
        "omittedCount": 0,
        "matchCount": 119506,
        "wallClockTime": 34
    }
}

我只是想从事件节点内的数据中创建一个数据框并创建键的列。但是,其中一些键丢失了,因此必须将它们全部合并在一起以确保所有键/列都存在。 我尝试通过每个节点循环填充字典,然后合并它们,但我无法弄清楚。有什么想法可以解决这个问题吗? 谢谢! 抢

【问题讨论】:

  • 您已经发布了您正在使用的数据;您尚未发布任何尝试使用此数据的代码,这可能是您想要修复的。
  • 抱歉,我从来没有发布它,因为我的方法是错误的,希望有人想出一个更优雅的解决方案,“递归”最终发布。我尝试创建一个空表并循环遍历每个节点并将键和值写入表的每一列/行。这个问题是我正在基于第一个节点创建表结构,所以如果缺少一个键,它不会在表中创建它。我知道必须有更好的方法哈哈

标签: python json pandas dataframe


【解决方案1】:

你可以尝试使用标准库中的json模块来解析json数据,然后converting the list of dicts to a Dataframe,像这样:

import json
import pandas as pd

json_data = """ {
    "results": [
        { ..."""
 

data = json.loads(json_data)
events = data["results"][0]["events"]

df = pd.DataFrame(events)

【讨论】:

  • 谢谢!不敢相信这太容易了,我花了很多时间试图通过循环遍历 json 节点来填充表,但后来我发现列丢失了
猜你喜欢
  • 2020-03-24
  • 2018-01-31
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多