在 Py 上读取 JSON

问题描述 投票:0回答:1

我想从同一个 json 中过滤不同的字段并将它们组织为表格,我该怎么做? 我需要 PANDAS Dataframes 的响应。

Response

我有以下 JSON:

{
  "jobIds": ["78321e6f-2030-4c7c-a6d3-ee3363e2b8fe"],
  "results": [
    {
      "jobId": "78321e6f-2030-4c7c-a6d3-ee3363e2b8fe",
      "result": {
        "data": {
          "timestamp": "2023-08-16T19:49:00.589Z",
          "rootActivityId": "5f99b36b-13c6-4e6e-9625-90a01455c0f2",
          "descriptor": {
            "Select": [
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G0",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "DM_TEMPO",
                      "Property": "NOM_MES_ABREV"
                    },
                    "Calc": "G0",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "DM_TEMPO.NOM_MES_ABREV"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G1",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "QTD_PRODUTO"
                    },
                    "Calc": "G1",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "Sum((Movimento) - FT_SDL_MOVIMENTO.QTD_PRODUTO)"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G2",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "COD_OPERACAO"
                    },
                    "Calc": "G2",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.COD_OPERACAO"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G3",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "COD_INSTALACAO_ORIG"
                    },
                    "Calc": "G3",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.COD_INSTALACAO_ORIG"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G4",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "SIG_UF_ORIG"
                    },
                    "Calc": "G4",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.SIG_UF_ORIG"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G5",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "SIG_REGIAO_ORIG"
                    },
                    "Calc": "G5",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.SIG_REGIAO_ORIG"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G6",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "RAZAO_SOCIAL_DEST"
                    },
                    "Calc": "G6",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.RAZAO_SOCIAL_DEST"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G7",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "SIG_UF_DEST"
                    },
                    "Calc": "G7",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.SIG_UF_DEST"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G8",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "SIG_REGIAO_DEST"
                    },
                    "Calc": "G8",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.SIG_REGIAO_DEST"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G9",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "QUALIF_DEST"
                    },
                    "Calc": "G9",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.QUALIF_DEST"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G10",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "TIPO_EXTRACAO"
                    },
                    "Calc": "G10",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.TIPO_EXTRACAO"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G11",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "C_UF"
                    },
                    "Calc": "G11",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.C_UF"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G12",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "C_REGIAO"
                    },
                    "Calc": "G12",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.C_REGIAO"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G13",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "C2_LOCALIZAÇÃO"
                    },
                    "Calc": "G13",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.C2_LOCALIZAÇÃO"
              },
              {
                "Kind": 1,
                "Depth": 0,
                "Value": "G14",
                "GroupKeys": [
                  {
                    "Source": {
                      "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                      "Property": "C_UF_Restrito"
                    },
                    "Calc": "G14",
                    "IsSameAsSelect": true
                  }
                ],
                "Name": "(Movimento) - FT_SDL_MOVIMENTO.C_UF_Restrito"
              }
            ],
            "Expressions": {
              "Primary": {
                "Groupings": [
                  {
                    "Keys": [
                      {
                        "Source": {
                          "Entity": "DM_TEMPO",
                          "Property": "NOM_MES_ABREV"
                        },
                        "Select": 0
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "QTD_PRODUTO"
                        },
                        "Select": 1
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "COD_OPERACAO"
                        },
                        "Select": 2
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "COD_INSTALACAO_ORIG"
                        },
                        "Select": 3
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "SIG_UF_ORIG"
                        },
                        "Select": 4
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "SIG_REGIAO_ORIG"
                        },
                        "Select": 5
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "RAZAO_SOCIAL_DEST"
                        },
                        "Select": 6
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "SIG_UF_DEST"
                        },
                        "Select": 7
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "SIG_REGIAO_DEST"
                        },
                        "Select": 8
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "QUALIF_DEST"
                        },
                        "Select": 9
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "TIPO_EXTRACAO"
                        },
                        "Select": 10
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "C_UF"
                        },
                        "Select": 11
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "C_REGIAO"
                        },
                        "Select": 12
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "C2_LOCALIZAÇÃO"
                        },
                        "Select": 13
                      },
                      {
                        "Source": {
                          "Entity": "(Movimento) - FT_SDL_MOVIMENTO",
                          "Property": "C_UF_Restrito"
                        },
                        "Select": 14
                      }
                    ],
                    "Member": "DM0"
                  }
                ]
              }
            },
            "Limits": { "Primary": { "Id": "L0", "Top": { "Count": 1000 } } },
            "Version": 2
          },
          "metrics": {
            "Version": "1.0.0",
            "Events": [
              {
                "Id": "ca5e94f5-318e-4de3-8a88-e94cc1105181",
                "Name": "Execute Semantic Query",
                "Component": "DSE",
                "Start": "2023-08-16T19:49:00.5899491Z",
                "End": "2023-08-16T19:49:00.6524475Z"
              },
              {
                "Id": "fb1cac7d-cf39-44b2-ac95-8db41fdcb6c4",
                "ParentId": "ca5e94f5-318e-4de3-8a88-e94cc1105181",
                "Name": "Execute DAX Query",
                "Component": "DSE",
                "Start": "2023-08-16T19:49:00.5899491Z",
                "End": "2023-08-16T19:49:00.6524475Z",
                "Metrics": { "RowCount": 4 }
              },
              {
                "Id": "08875535-8F1B-41A6-9820-8DB70C25747B",
                "ParentId": "fb1cac7d-cf39-44b2-ac95-8db41fdcb6c4",
                "Name": "Execute Query",
                "Component": "AS",
                "Start": "2023-08-16T19:49:00.637Z",
                "End": "2023-08-16T19:49:00.647Z"
              },
              {
                "Id": "85BA220D-C873-4C33-BD39-258AF2B07039",
                "ParentId": "08875535-8F1B-41A6-9820-8DB70C25747B",
                "Name": "Serialize Rowset",
                "Component": "AS",
                "Start": "2023-08-16T19:49:00.647Z",
                "End": "2023-08-16T19:49:00.647Z"
              }
            ]
          },
          "fromCache": false,
          "dsr": {
            "Version": 2,
            "MinorVersion": 1,
            "DS": [
              {
                "N": "DS0",
                "PH": [
                  {
                    "DM0": [
                      {
                        "S": [
                          { "N": "G0", "T": 1, "DN": "D0" },
                          { "N": "G1", "T": 3 },
                          { "N": "G2", "T": 1, "DN": "D1" },
                          { "N": "G3", "T": 1, "DN": "D2" },
                          { "N": "G4", "T": 1, "DN": "D3" },
                          { "N": "G5", "T": 1, "DN": "D4" },
                          { "N": "G6", "T": 1, "DN": "D5" },
                          { "N": "G7", "T": 1, "DN": "D6" },
                          { "N": "G8", "T": 1, "DN": "D7" },
                          { "N": "G9", "T": 1, "DN": "D8" },
                          { "N": "G10", "T": 1, "DN": "D9" },
                          { "N": "G11", "T": 1, "DN": "D10" },
                          { "N": "G12", "T": 1, "DN": "D11" },
                          { "N": "G13", "T": 1, "DN": "D12" },
                          { "N": "G14", "T": 1, "DN": "D13" }
                        ],
                        "C": [
                          0,
                          "0.0018000000000000002",
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0,
                          0
                        ]
                      },
                      {
                        "C": ["0.0096499999999999989", 1, 1, 1, 1, 1],
                        "R": 30561
                      },
                      { "C": [0.02252, 2, 2, 2], "R": 30581 },
                      { "C": [0.02864, 2, 1, 3, 3], "R": 30521 }
                    ]
                  }
                ],
                "IC": true,
                "HAD": true,
                "ValueDicts": {
                  "D0": ["Jan"],
                  "D1": ["26", "15", "14"],
                  "D2": ["1038329", "1033638", "1232257"],
                  "D3": ["TO", "AM"],
                  "D4": ["N"],
                  "D5": [
                    "NÃO INFORMADO",
                    "CONSORCIO SANCHES TRIPOLONI-COEMA-PLANNUS"
                  ],
                  "D6": ["TO", "AM", "RO", "RR"],
                  "D7": ["N"],
                  "D8": ["CONSUMIDOR FINAL"],
                  "D9": ["Dist"],
                  "D10": ["TO", "AM", "RO", "RR"],
                  "D11": ["N"],
                  "D12": ["NÃO INFORMADO"],
                  "D13": [
                    "Os dados por UF não estão disponíveis para este ano."
                  ]
                }
              }
            ]
          }
        }
      }
    }
  ]
}

我尝试这个代码:

import json
import pandas as pd

with open('data.json', 'r') as json_file:
json_data = json.load(json_file)

value_dicts = json_data\["results"\]\[0\]\["result"\]\["data"\]\["dsr"\]\["DS"\]\[0\]\["ValueDicts"\]

max_length = max(len(values) for values in value_dicts.values()

for key in value_dicts.keys():
value_dicts\[key\] = value_dicts\[key\] + \[None\] \* (max_length - len(value_dicts\[key\]))

df = pd.DataFrame(value_dicts)

print(df)

并收到这个:My CONSOLE

我尝试在列中设置格式,但我认为有一种方法可以以不同类型过滤此对象

python json response
1个回答
0
投票

我假设这是 PowerBI 查询的输出是否正确?请添加有关源数据的更多详细信息以及您正在使用的查询。我相当有信心有一种更简单的方法可以实现这一点,例如直接从源将查询结果导出为 .csv 格式。如果您提供有关该过程的更多详细信息,我们可能可以为您提供帮助。至于目前的问题,该 .json 文件中没有足够的信息来重建表。

© www.soinside.com 2019 - 2024. All rights reserved.