【问题标题】:Turning Nested JSON with Arrays into DataFrame in Python在 Python 中将带有数组的嵌套 JSON 转换为 DataFrame
【发布时间】:2019-07-25 04:22:53
【问题描述】:

我有一组重度嵌套的 Json,我想把它变成一个表格

我想将下面的 JSON 响应转换为“步骤”下的表格,我可以提取“名称”和“选项”以及其中的值

    "data": {
        "activities": [
            {
                "sections": [
                    {
                        "steps": [
                            {
                                "blocking": false,
                                "actionable": true,
                                "document": null,
                                "name": "Site",
                                "options": [
                                    "RKM",
                                    "Meridian"
                                ],
                                "description": null,
                                "id": "036c3090-95c4-4162-a746-832ed43a2805",
                                "type": "DROPDOWN"
                            },
                            {
                                "blocking": false,
                                "actionable": true,
                                "document": null,
                                "name": "Location",
                                "options": [
                                    "Field",
                                    "Station"
                                ],

【问题讨论】:

    标签: python arrays json python-3.x


    【解决方案1】:

    假设您想要一个 pandas 数据框:

    df = pd.DataFrame(json['data']['activities'][0]['sections'][0]['steps'])[['name', 'options']]
    print(df)
    

    输出:

           name           options
    0      Site   [RKM, Meridian]
    1  Location  [Field, Station]
    

    【讨论】:

    • 如果我还想要我的数据帧中的其他内容,例如“阻止”可操作“等,那该怎么办?这就是我正在努力解决的部分。@U10-Forward
    • @ZachGodsell 然后做:df = pd.DataFrame(json['data']['activities'][0]['sections'][0]['steps'])[['name', 'options', 'blocking', 'actionable']],只需在最后一个列表中添加更多键
    • @ZachGodsell 如果您希望所有列从末尾删除整个列表
    • 如果所有的 Json 看起来都是这样的,我想要数据框中的所有这些数据。澄清它的最佳方法是什么:pastebin.com/qyYpf5RN
    • @ZachGodsell 我会介意您将此作为另一个问题提出,所以既然这回答了您发布的问题,您应该接受它
    猜你喜欢
    • 2022-01-09
    • 2020-09-29
    • 1970-01-01
    • 2022-11-06
    • 2019-03-16
    • 2019-06-09
    • 2021-12-29
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多