使用python将JSON嵌套到CSV

时间:2018-03-21 10:04:12

标签: python json csv parsing nested

我是python的新手,我有一个需要转换为CSV的大型JSON文件 - 下面是一个示例

{
"status":"success",
"Name":"Theresa May",
"Location":"87654321",
"AccountCategory":"Business",
"AccountType":"Current",
"TicketNo":"12345-12",
"AvailableBal":"12775.0400",
"BookBa":"123475.0400",
"TotalCredit":"1234567",
"TotalDebit":"0",
"Usage":"5",
"Period":"May 11 2014 to Jul 11 2014",
"Currency":"GBP",
"Applicants":"Angel",
"Signatories":[
  {
     "Name":"Not Available",
     "BVB":"Not Available"
  }
],
"Details":[
  {
     "PTransactionDate":"24-Jul-14",
     "PValueDate":"24-Jul-13",
     "PNarration":"Cash Deposit",
     "PCredit":"0.0000",
     "PDebit":"40003.0000",
     "PBalance":"40003.0000"
  },
  {
     "PTransactionDate":"24-Jul-14",
     "PValueDate":"23-Jul-14",
     "PTest":"Cash Deposit",
     "PCredit":"0.0000",
     "PDebit":"40003.0000",
     "PBalance":"40003.0000"
  },
  {
     "PTransactionDate":"25-Jul-14",
     "PValueDate":"22-Jul-14",
     "PTest":"Cash Deposit",
     "PCredit":"0.0000",
     "PDebit":"40003.0000",
     "PBalance":"40003.0000"
  },
  {
     "PTransactionDate":"25-Jul-14",
     "PValueDate":"21-Jul-14",
     "PTest":"Cash Deposit",
     "PCredit":"0.0000",
     "PDebit":"40003.0000",
     "PBalance":"40003.0000"
  },
  {
     "PTransactionDate":"25-Jul-14",
     "PValueDate":"20-Jul-14",
     "PTest":"Cash Deposit",
     "PCredit":"0.0000",
     "PDebit":"40003.0000",
     "PBalance":"40003.0000"
  }
]
}

我需要将其显示为

名称,状态,位置,accountcategory,accounttype,availablebal,totalcredit,totaldebit等列,

使用pcredit,pdebit,pbalance,ptransactiondate,pvaluedate和' ptest'每行都有新值,如JSON文件所示

我设法将此脚本从stackoverflow放在一起,并输出一个csv文件,但它现在显示的是csv文件中有我需要的标题,还输出状态,名称,然而,从ptransactiondate直到结尾的json内容的其余部分实际上是在单个列的内部'详细信息' - 我将如何获得其余部分(如pcredit,pdebit,ptransaction等等?还有自己的列?

请参阅下面的我的python脚本 - 我可以提供一些关于再次改变的建议吗?感谢

import csv
import json

with open("BankStatementJSON1.json", "r") as inputFile:  # open json file
    data = json.loads(inputFile.read())  # load json content

with open("testing.csv", "w") as outputFile:  # open csv file
    output = csv.DictWriter(outputFile, data.keys())  # create a writer
    output.writeheader()
    output.writerow(data)

请参阅图片,了解我的CSV文件的样子,以及我需要的样子。 view JSON Output images

0 个答案:

没有答案