首页 > 解决方案 > Python - 从多个级别获取嵌套数据

问题描述

不知道如何命名这个问题,但我正在使用 Quickbooks Online API,当查询像 BalanceSheet 或 GeneralLedger 这样的报告时,API 返回多个嵌套级别的数据行,解析起来非常令人沮丧。

资产负债表回报示例如下。我只对来自“Row”对象的数据感兴趣,但正如您所见,它可以在 1、2、3 或更多不同级别的数据中返回。我正在考虑通过每个级别检查行,然后获取每一行,但这似乎过于复杂,因为每个级别都需要多个 for 循环。

我想知道是否有更好的方法来获取该数据中的每个“行”而不考虑它处于哪个级别?任何想法,将不胜感激!

以下是从他们的沙盒数据返回的示例:

{
 "Header": {
  "Time": "2021-04-28T14:12:17-07:00",
  "ReportName": "BalanceSheet",
  "DateMacro": "this calendar year-to-date",
  "ReportBasis": "Accrual",
  "StartPeriod": "2021-01-01",
  "EndPeriod": "2021-04-28",
  "SummarizeColumnsBy": "Month",
  "Currency": "USD",
  "Option": [
   {
    "Name": "AccountingStandard",
    "Value": "GAAP"
   },
   {
    "Name": "NoReportData",
    "Value": "false"
   }
  ]
 },
 "Columns": {
  "Column": [
   {
    "ColTitle": "",
    "ColType": "Account",
    "MetaData": [
     {
      "Name": "ColKey",
      "Value": "account"
     }
    ]
   },
   {
    "ColTitle": "Jan 2021",
    "ColType": "Money",
    "MetaData": [
     {
      "Name": "StartDate",
      "Value": "2021-01-01"
     },
     {
      "Name": "EndDate",
      "Value": "2021-01-31"
     },
     {
      "Name": "ColKey",
      "Value": "Jan 2021"
     }
    ]
   },
   {
    "ColTitle": "Feb 2021",
    "ColType": "Money",
    "MetaData": [
     {
      "Name": "StartDate",
      "Value": "2021-02-01"
     },
     {
      "Name": "EndDate",
      "Value": "2021-02-28"
     },
     {
      "Name": "ColKey",
      "Value": "Feb 2021"
     }
    ]
   },
   {
    "ColTitle": "Mar 2021",
    "ColType": "Money",
    "MetaData": [
     {
      "Name": "StartDate",
      "Value": "2021-03-01"
     },
     {
      "Name": "EndDate",
      "Value": "2021-03-31"
     },
     {
      "Name": "ColKey",
      "Value": "Mar 2021"
     }
    ]
   },
   {
    "ColTitle": "Apr 1-28, 2021",
    "ColType": "Money",
    "MetaData": [
     {
      "Name": "StartDate",
      "Value": "2021-04-01"
     },
     {
      "Name": "EndDate",
      "Value": "2021-04-28"
     },
     {
      "Name": "ColKey",
      "Value": "Apr 1-28, 2021"
     }
    ]
   }
  ]
 },
 "Rows": {
  "Row": [
   {
    "Header": {
     "ColData": [
      {
       "value": "ASSETS"
      },
      {
       "value": ""
      },
      {
       "value": ""
      },
      {
       "value": ""
      },
      {
       "value": ""
      }
     ]
    },
    "Rows": {
     "Row": [
      {
       "Header": {
        "ColData": [
         {
          "value": "Current Assets"
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         }
        ]
       },
       "Rows": {
        "Row": [
         {
          "Header": {
           "ColData": [
            {
             "value": "Bank Accounts"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "ColData": [
              {
               "value": "Checking",
               "id": "35"
              },
              {
               "value": "1201.00"
              },
              {
               "value": "1201.00"
              },
              {
               "value": "1201.00"
              },
              {
               "value": "1201.00"
              }
             ],
             "type": "Data"
            },
            {
             "ColData": [
              {
               "value": "Savings",
               "id": "36"
              },
              {
               "value": "800.00"
              },
              {
               "value": "800.00"
              },
              {
               "value": "800.00"
              },
              {
               "value": "800.00"
              }
             ],
             "type": "Data"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Bank Accounts"
            },
            {
             "value": "2001.00"
            },
            {
             "value": "2001.00"
            },
            {
             "value": "2001.00"
            },
            {
             "value": "2001.00"
            }
           ]
          },
          "type": "Section",
          "group": "BankAccounts"
         },
         {
          "Header": {
           "ColData": [
            {
             "value": "Accounts Receivable"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "ColData": [
              {
               "value": "Accounts Receivable (A/R)",
               "id": "84"
              },
              {
               "value": "5281.52"
              },
              {
               "value": "5281.52"
              },
              {
               "value": "5281.52"
              },
              {
               "value": "5281.52"
              }
             ],
             "type": "Data"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Accounts Receivable"
            },
            {
             "value": "5281.52"
            },
            {
             "value": "5281.52"
            },
            {
             "value": "5281.52"
            },
            {
             "value": "5281.52"
            }
           ]
          },
          "type": "Section",
          "group": "AR"
         },
         {
          "Header": {
           "ColData": [
            {
             "value": "Other Current Assets"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "ColData": [
              {
               "value": "Inventory Asset",
               "id": "81"
              },
              {
               "value": "596.25"
              },
              {
               "value": "596.25"
              },
              {
               "value": "596.25"
              },
              {
               "value": "596.25"
              }
             ],
             "type": "Data"
            },
            {
             "ColData": [
              {
               "value": "Undeposited Funds",
               "id": "4"
              },
              {
               "value": "2062.52"
              },
              {
               "value": "2062.52"
              },
              {
               "value": "2062.52"
              },
              {
               "value": "2062.52"
              }
             ],
             "type": "Data"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Other Current Assets"
            },
            {
             "value": "2658.77"
            },
            {
             "value": "2658.77"
            },
            {
             "value": "2658.77"
            },
            {
             "value": "2658.77"
            }
           ]
          },
          "type": "Section",
          "group": "OtherCurrentAssets"
         }
        ]
       },
       "Summary": {
        "ColData": [
         {
          "value": "Total Current Assets"
         },
         {
          "value": "9941.29"
         },
         {
          "value": "9941.29"
         },
         {
          "value": "9941.29"
         },
         {
          "value": "9941.29"
         }
        ]
       },
       "type": "Section",
       "group": "CurrentAssets"
      },
      {
       "Header": {
        "ColData": [
         {
          "value": "Fixed Assets"
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         }
        ]
       },
       "Rows": {
        "Row": [
         {
          "Header": {
           "ColData": [
            {
             "value": "Truck",
             "id": "37"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "ColData": [
              {
               "value": "Original Cost",
               "id": "38"
              },
              {
               "value": "13495.00"
              },
              {
               "value": "13495.00"
              },
              {
               "value": "13495.00"
              },
              {
               "value": "13495.00"
              }
             ],
             "type": "Data"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Truck"
            },
            {
             "value": "13495.00"
            },
            {
             "value": "13495.00"
            },
            {
             "value": "13495.00"
            },
            {
             "value": "13495.00"
            }
           ]
          },
          "type": "Section"
         }
        ]
       },
       "Summary": {
        "ColData": [
         {
          "value": "Total Fixed Assets"
         },
         {
          "value": "13495.00"
         },
         {
          "value": "13495.00"
         },
         {
          "value": "13495.00"
         },
         {
          "value": "13495.00"
         }
        ]
       },
       "type": "Section",
       "group": "FixedAssets"
      }
     ]
    },
    "Summary": {
     "ColData": [
      {
       "value": "TOTAL ASSETS"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      }
     ]
    },
    "type": "Section",
    "group": "TotalAssets"
   },
   {
    "Header": {
     "ColData": [
      {
       "value": "LIABILITIES AND EQUITY"
      },
      {
       "value": ""
      },
      {
       "value": ""
      },
      {
       "value": ""
      },
      {
       "value": ""
      }
     ]
    },
    "Rows": {
     "Row": [
      {
       "Header": {
        "ColData": [
         {
          "value": "Liabilities"
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         }
        ]
       },
       "Rows": {
        "Row": [
         {
          "Header": {
           "ColData": [
            {
             "value": "Current Liabilities"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "Header": {
              "ColData": [
               {
                "value": "Accounts Payable"
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               }
              ]
             },
             "Rows": {
              "Row": [
               {
                "ColData": [
                 {
                  "value": "Accounts Payable (A/P)",
                  "id": "33"
                 },
                 {
                  "value": "1602.67"
                 },
                 {
                  "value": "1602.67"
                 },
                 {
                  "value": "1602.67"
                 },
                 {
                  "value": "1602.67"
                 }
                ],
                "type": "Data"
               }
              ]
             },
             "Summary": {
              "ColData": [
               {
                "value": "Total Accounts Payable"
               },
               {
                "value": "1602.67"
               },
               {
                "value": "1602.67"
               },
               {
                "value": "1602.67"
               },
               {
                "value": "1602.67"
               }
              ]
             },
             "type": "Section",
             "group": "AP"
            },
            {
             "Header": {
              "ColData": [
               {
                "value": "Credit Cards"
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               }
              ]
             },
             "Rows": {
              "Row": [
               {
                "ColData": [
                 {
                  "value": "Mastercard",
                  "id": "41"
                 },
                 {
                  "value": "157.72"
                 },
                 {
                  "value": "157.72"
                 },
                 {
                  "value": "157.72"
                 },
                 {
                  "value": "157.72"
                 }
                ],
                "type": "Data"
               }
              ]
             },
             "Summary": {
              "ColData": [
               {
                "value": "Total Credit Cards"
               },
               {
                "value": "157.72"
               },
               {
                "value": "157.72"
               },
               {
                "value": "157.72"
               },
               {
                "value": "157.72"
               }
              ]
             },
             "type": "Section",
             "group": "CreditCards"
            },
            {
             "Header": {
              "ColData": [
               {
                "value": "Other Current Liabilities"
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               },
               {
                "value": ""
               }
              ]
             },
             "Rows": {
              "Row": [
               {
                "ColData": [
                 {
                  "value": "Arizona Dept. of Revenue Payable",
                  "id": "89"
                 },
                 {
                  "value": "0.00"
                 },
                 {
                  "value": "0.00"
                 },
                 {
                  "value": "0.00"
                 },
                 {
                  "value": "0.00"
                 }
                ],
                "type": "Data"
               },
               {
                "ColData": [
                 {
                  "value": "Board of Equalization Payable",
                  "id": "90"
                 },
                 {
                  "value": "370.94"
                 },
                 {
                  "value": "370.94"
                 },
                 {
                  "value": "370.94"
                 },
                 {
                  "value": "370.94"
                 }
                ],
                "type": "Data"
               },
               {
                "ColData": [
                 {
                  "value": "Loan Payable",
                  "id": "43"
                 },
                 {
                  "value": "4000.00"
                 },
                 {
                  "value": "4000.00"
                 },
                 {
                  "value": "4000.00"
                 },
                 {
                  "value": "4000.00"
                 }
                ],
                "type": "Data"
               }
              ]
             },
             "Summary": {
              "ColData": [
               {
                "value": "Total Other Current Liabilities"
               },
               {
                "value": "4370.94"
               },
               {
                "value": "4370.94"
               },
               {
                "value": "4370.94"
               },
               {
                "value": "4370.94"
               }
              ]
             },
             "type": "Section",
             "group": "OtherCurrentLiabilities"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Current Liabilities"
            },
            {
             "value": "6131.33"
            },
            {
             "value": "6131.33"
            },
            {
             "value": "6131.33"
            },
            {
             "value": "6131.33"
            }
           ]
          },
          "type": "Section",
          "group": "CurrentLiabilities"
         },
         {
          "Header": {
           "ColData": [
            {
             "value": "Long-Term Liabilities"
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            },
            {
             "value": ""
            }
           ]
          },
          "Rows": {
           "Row": [
            {
             "ColData": [
              {
               "value": "Notes Payable",
               "id": "44"
              },
              {
               "value": "25000.00"
              },
              {
               "value": "25000.00"
              },
              {
               "value": "25000.00"
              },
              {
               "value": "25000.00"
              }
             ],
             "type": "Data"
            }
           ]
          },
          "Summary": {
           "ColData": [
            {
             "value": "Total Long-Term Liabilities"
            },
            {
             "value": "25000.00"
            },
            {
             "value": "25000.00"
            },
            {
             "value": "25000.00"
            },
            {
             "value": "25000.00"
            }
           ]
          },
          "type": "Section",
          "group": "LongTermLiabilities"
         }
        ]
       },
       "Summary": {
        "ColData": [
         {
          "value": "Total Liabilities"
         },
         {
          "value": "31131.33"
         },
         {
          "value": "31131.33"
         },
         {
          "value": "31131.33"
         },
         {
          "value": "31131.33"
         }
        ]
       },
       "type": "Section",
       "group": "Liabilities"
      },
      {
       "Header": {
        "ColData": [
         {
          "value": "Equity"
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         },
         {
          "value": ""
         }
        ]
       },
       "Rows": {
        "Row": [
         {
          "ColData": [
           {
            "value": "Opening Balance Equity",
            "id": "34"
           },
           {
            "value": "-9337.50"
           },
           {
            "value": "-9337.50"
           },
           {
            "value": "-9337.50"
           },
           {
            "value": "-9337.50"
           }
          ],
          "type": "Data"
         },
         {
          "ColData": [
           {
            "value": "Retained Earnings",
            "id": "2"
           },
           {
            "value": "1642.46"
           },
           {
            "value": "1642.46"
           },
           {
            "value": "1642.46"
           },
           {
            "value": "1642.46"
           }
          ],
          "type": "Data"
         },
         {
          "ColData": [
           {
            "value": "Net Income"
           },
           {
            "value": ""
           },
           {
            "value": ""
           },
           {
            "value": ""
           },
           {
            "value": ""
           }
          ],
          "type": "Data",
          "group": "NetIncome"
         }
        ]
       },
       "Summary": {
        "ColData": [
         {
          "value": "Total Equity"
         },
         {
          "value": "-7695.04"
         },
         {
          "value": "-7695.04"
         },
         {
          "value": "-7695.04"
         },
         {
          "value": "-7695.04"
         }
        ]
       },
       "type": "Section",
       "group": "Equity"
      }
     ]
    },
    "Summary": {
     "ColData": [
      {
       "value": "TOTAL LIABILITIES AND EQUITY"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      },
      {
       "value": "23436.29"
      }
     ]
    },
    "type": "Section",
    "group": "TotalLiabilitiesAndEquity"
   }
  ]
 }
}

标签: pythonquickbooks-online

解决方案


推荐阅读