簡體   English   中英

使用 python 將復雜的 json 轉換為 CSV

[英]Convert complex json to CSV using python

我想使用 python 將我的 json 文件轉換為 CSV 文件,我瀏覽了許多站點,它們都僅限於簡單的 Z466DEEC71ECDF5FCA6DZ8 格式。 有人知道我們如何處理具有嵌套格式的復雜 json 文件嗎?

{“tttt”:“546”tttt,“reportId”:“”,“erete”:“umereteort”,“adpPayrollResponse”:{“asOfDate”:“2020-11-25”,“governmentID”:{“id” :“xxx-xx-gfdgfg”,“fffffff代碼”:{“fffffff”:“tttt”,“代碼”:“gdfgf”}},“personalData”:{“personfffffff”:{“givenfffffff”:“tttt”, “middlefffffff”:“S”,“familyfffffff”:“tttt”},“通訊”:{“電話”:[{

           }
        ],
        "emails":[
           {
              "emailUri":"jtttt"
           }
        ],
        "internetAddresses":[
           
        ]
     },
     "address":{
        "lineOne":"tttt",
        "cityfffffff":"Brgfgfgfdistow",
        "subdivisionCode1":{
           "fffffff":"VA"
        },
        "erete":"US",
        "erete":"fgfdgfdgfg"
     }
  },
  "main":[
     {
        "employerfffffff":"tttt",
        "legalEntityID":{
           "legalEntityID":"fgfdgfgfdg",
           "erete":null
        },
        "gfdgfgfg":{
           "lineOne":"9500 fgfdgfdgfdg DR",
           "cityfffffff":"MANASSAS",
           "gfdgfgf":{
              "fffffff":"VA"
           },
           "fgdfgf":"gfdgdfg",
           "erete":"20110"
        },
        "ffgfg":"2003-06-16",
        "erete":{
           "fffffff":"Active",
           "code":"A"
        },
        "fgfdggdf":{
           "fffffff":"Regular Full-Time",
           "code":"FT"
        },
        "erete":"Business Analyst",
        "fdgfdgfg":"gfgfgfg-06fgfgg16",
        "fgfdgfdgfg":"dfgfgfdg",
        "remunerationSummary":[
           
           {
              "payrollYear":2019,
              "baseRemunerationeeeeeee":{
                 "eeeeeee":114329.73,
                 "cccccc":"tttt"
              },
              "additionalRemunerations":[
                 {
                    "tttt":"tttt",
                    "remunerationeeeeeee":{
                       "eeeeeee":22000.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "tttt":"tttt",
                    "remunerationeeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "tttt":"YTD Others",
                    "remunerationeeeeeee":{
                       "eeeeeee":40558.47,
                       "cccccc":"tttt"
                    }
                 }
              ],
              "totalAnnualRemunerationeeeeeee":{
                 "eeeeeee":146688.0,
                 "cccccc":"tttt"
              },
              "netPayYTDeeeeeee":{
                 "eeeeeee":85395.04,
                 "cccccc":"tttt"
              }
           },
           {
              "payrollYear":2018,
              "baseRemunerationeeeeeee":{
                 "eeeeeee":31539.28,
                 "cccccc":"tttt"
              },
              "additionalRemunerations":[
                 {
                    "tttt":"tttt",
                    "remunerationeeeeeee":{
                       "eeeeeee":10500.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "tttt":"tttt",
                    "remunerationeeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "tttt":"YTD Others",
                    "remunerationeeeeeee":{
                       "eeeeeee":11646.84,
                       "cccccc":"tttt"
                    }
                 }
              ],
              "totalAnnualRemunerationeeeeeee":{
                 "eeeeeee":35301.3,
                 "cccccc":"tttt"
              },
              "netPayYTDeeeeeee":{
                 "eeeeeee":26036.31,
                 "cccccc":"tttt"
              }
           }
        ],
        "paymentHistory":[
           {
              "tttt":true,
              "tttt":null,
              "dfsd":"2020-11-25",
              "payPeriod":{
                 "tttt":"2020-10-31",
                 "tttt":"2020-11-13"
              },
              "payeeeeeee":{
                 "dfsd":{
                    "eeeeeee":4640.36,
                    "cccccc":"tttt"
                 },
                 "basePayeeeeeee":{
                    "eeeeeee":4305.11,
                    "cccccc":"tttt"
                 },
                 "dfsd":{
                    "eeeeeee":2654.71,
                    "cccccc":"tttt"
                 },
                 "bonusPayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "overtimePayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "otherPayeeeeeee":{
                    "eeeeeee":335.25,
                    "cccccc":"tttt"
                 }
              },
              "tttt":"80.0",
              "tttt":{
                 "fffffff":"tttt",
                 "code":null
              },
              "tttt":{
                 "eeeeeee":4305.11,
                 "cccccc":"tttt"
              },
              "123":{
                 "fffffff":"Bi-Weekly",
                 "code":"B"
              },
             
              "de":[
                 {
                    "erete":{
                       "fffffff":"tttt 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":704.17,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"State 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":219.27,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Local 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Social security 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":273.61,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Retirement de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":215.26,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Garnishment de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"tttt",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Benefit de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":234.22,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"SUI SDI VPDI 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 }
              ]
           },
           {
              "tttt":false,
              "tttt":null,
              "dfsd":"2020-11-10",
              "payPeriod":{
                 "tttt":"2020-10-17",
                 "tttt":"2020-10-30"
              },
              "payeeeeeee":{
                 "dfsd":{
                    "eeeeeee":4325.81,
                    "cccccc":"tttt"
                 },
                 "basePayeeeeeee":{
                    "eeeeeee":4305.11,
                    "cccccc":"tttt"
                 },
                 "dfsd":{
                    "eeeeeee":2457.8,
                    "cccccc":"tttt"
                 },
                 "bonusPayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "overtimePayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "otherPayeeeeeee":{
                    "eeeeeee":20.7,
                    "cccccc":"tttt"
                 }
              },
              "tttt":"80.0",
              "tttt":{
                 "fffffff":"tttt",
                 "code":null
              },
              "tttt":{
                 "eeeeeee":4305.11,
                 "cccccc":"tttt"
              },
              "123":{
                 "fffffff":"Bi-Weekly",
                 "code":"B"
              },
              "de":[
                 {
                    "depositeeeeeee":{
                       "eeeeeee":2457.8,
                       "cccccc":"tttt"
                    },
                    "dfsd":{
                       "tttt":"05100001",
                       "name":"tttt",
                       "tttt":"tttt"
                    }
                 }
              ],
              "de":[
                 {
                    "erete":{
                       "fffffff":"tttt 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":628.68,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"State 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":201.18,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Local 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Social security 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":254.1,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Retirement de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":215.26,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Garnishment de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"tttt",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"Benefit de",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":234.22,
                       "cccccc":"tttt"
                    }
                 },
                 {
                    "erete":{
                       "fffffff":"SUI SDI VPDI 123",
                       "code":null
                    },
                    "deductioneeeeeee":{
                       "eeeeeee":0.0,
                       "cccccc":"tttt"
                    }
                 }
              ]
           },
           {
           {
              "tttt":false,
              "tttt":null,
              "dfsd":"2020-10-14",
              "payPeriod":{
                 "tttt":"2020-09-19",
                 "tttt":"2020-10-02"
              },
              "payeeeeeee":{
                 "dfsd":{
                    "eeeeeee":4460.34,
                    "cccccc":"tttt"
                 },
                 "basePayeeeeeee":{
                    "eeeeeee":4305.11,
                    "cccccc":"tttt"
                 },
                 "dfsd":{
                    "eeeeeee":2537.29,
                    "cccccc":"tttt"
                 },
                 "bonusPayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "overtimePayeeeeeee":{
                    "eeeeeee":0.0,
                    "cccccc":"tttt"
                 },
                 "otherPayeeeeeee":{
                    "eeeeeee":155.23,
                    "cccccc":"tttt"
                 }
              },
              "tttt":"82.5",
              "tttt":{
                 "fffffff":"tttt",
                 "code":null
              },
              "tttt":{
                 "eeeeeee":4305.11,
                 "cccccc":"tttt"
              },
              "123":{
                 "fffffff":"Bi-Weekly",
                 "code":"B"
              },
              "de":[
                 {
                    "depositeeeeeee":{
                       "eeeeeee":2537.29,
                       "cccccc":"tttt"
                    },
                    "dfsd":{
                       "tttt":"05100001",
                       "name":"tttt",
                       "tttt":"tttt"
                    }
                 }
              ],
           
           }

        ]
     }
  ],
  "asaadaff":{
     "availableHistorySourceCount":1,
     "includedHistorySourceCount":1,
     "availablePaymentHistoryMonths":{
        "payrollDataMonthCount":26,
        "quarterlyDataMonthCount":0
     }
  },
  "adpCorrelationId":"3941321f-844d-46f3-8b4a-7671c80e6e58",
  "payrollProvider":"adp"

} }

我試圖清理您的樣品 json(第 1 部分)以查看數據和測試轉換為 csv。

以下通用 function 以展平 CSV 列的命名空間。 您將需要為 csv 的特定名稱空間自定義此項。 現在從描述中不清楚。

平面字典
{
    "tttt": "546",
    "reportId": "",
    "erete": "umereteort",
    "asOfDate_adpPayrollResponse": "2020-11-25",
    "id_governmentID_adpPayrollResponse": "xxx-xx-gfdgfg",
    "fffffff_fffffffCode_governmentID_adpPayrollResponse": "tttt",
    "code_fffffffCode_governmentID_adpPayrollResponse": "gdfgf",
    "givenfffffff_personfffffff_personalData_adpPayrollResponse": "tttt",
    "middlefffffff_personfffffff_personalData_adpPayrollResponse": "S",
    "familyfffffff_personfffffff_personalData_adpPayrollResponse": "tttt",
    "telephones_communication_personalData_adpPayrollResponse": [
        {}
    ],
    "emails_communication_personalData_adpPayrollResponse": [
        {
            "emailUri": "jtttt"
        }
    ],
    "internetAddresses_communication_personalData_adpPayrollResponse": [],
    "lineOne_address_personalData_adpPayrollResponse": "tttt",
    "cityfffffff_address_personalData_adpPayrollResponse": "Brgfgfgfdistow",
    "fffffff_subdivisionCode1_address_personalData_adpPayrollResponse": "VA",
    "erete_address_personalData_adpPayrollResponse": "fgfdgfdgfg"
}

為 CSV 展平 JSON

 { "tttt": "546", "reportId": "", "erete": "umereteort", "asOfDate_adpPayrollResponse": "2020-11-25", "id_governmentID_adpPayrollResponse": "xxx-xx-gfdgfg", "fffffff_fffffffCode_governmentID_adpPayrollResponse": "tttt", "code_fffffffCode_governmentID_adpPayrollResponse": "gdfgf", "givenfffffff_personfffffff_personalData_adpPayrollResponse": "tttt", "middlefffffff_personfffffff_personalData_adpPayrollResponse": "S", "familyfffffff_personfffffff_personalData_adpPayrollResponse": "tttt", "telephones_communication_personalData_adpPayrollResponse": [ {} ], "emails_communication_personalData_adpPayrollResponse": [ { "emailUri": "jtttt" } ], "internetAddresses_communication_personalData_adpPayrollResponse": [], "lineOne_address_personalData_adpPayrollResponse": "tttt", "cityfffffff_address_personalData_adpPayrollResponse": "Brgfgfgfdistow", "fffffff_subdivisionCode1_address_personalData_adpPayrollResponse": "VA", "erete_address_personalData_adpPayrollResponse": "fgfdgfdgfg" }

JSON 來自上述描述的樣本

以下是上面 json 的一些副本作為 flatDict() 的輸入

{
    "tttt": "546",
    "reportId": "",
    "erete": "umereteort",
    "adpPayrollResponse": {
        "asOfDate": "2020-11-25",
        "governmentID": {
            "id": "xxx-xx-gfdgfg",
            "fffffffCode": {
                "fffffff": "tttt",
                "code": "gdfgf"
            }
        },
        "personalData": {
            "personfffffff": {
                "givenfffffff": "tttt",
                "middlefffffff": "S",
                "familyfffffff": "tttt"
            },
            "communication": {
                "telephones": [
                    {}
                ],
                "emails": [
                    {
                        "emailUri": "jtttt"
                    }
                ],
                "internetAddresses": []
            },
            "address": {
                "lineOne": "tttt",
                "cityfffffff": "Brgfgfgfdistow",
                "subdivisionCode1": {
                    "fffffff": "VA"
                },
                "erete": "fgfdgfdgfg"
            }
        }
    }
}

漂亮的印刷品

{ "tttt": "546", "reportId": "", "erete": "umereteort", "adpPayrollResponse": { "asOfDate": "2020-11-25", "governmentID": { "id": "xxx-xx-gfdgfg", "fffffffCode": { "fffffff": "tttt", "code": "gdfgf" } }, "personalData": { "personfffffff": { "givenfffffff": "tttt", "middlefffffff": "S", "familyfffffff": "tttt" }, "communication": { "telephones": [ {} ], "emails": [ { "emailUri": "jtttt" } ], "internetAddresses": [] }, "address": { "lineOne": "tttt", "cityfffffff": "Brgfgfgfdistow", "subdivisionCode1": { "fffffff": "VA" }, "erete": "fgfdgfdgfg" } } } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM