Chilkat2-Python
Chilkat2-Python
QuickBooks - Parse the JSON of a Customer Balance Detail Report
See more CSV Examples
This example is to show how to parse the JSON of a particular Quickbooks report. The techniques shown here may help in parsing similar reports.The JSON to be parsed is available at Sample Quickbooks Customer Balance Detail Report JSON
Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
http = chilkat2.Http()
# Get the JSON we'll be parsing..
jsonStr = http.QuickGetStr("https://www.chilkatsoft.com/exampleData/qb_customer_balance_detail_report_2.json")
if (http.LastMethodSuccess != True):
print(http.LastErrorText)
sys.exit()
json = chilkat2.JsonObject()
json.Load(jsonStr)
# As an alternative to manually writing code, use this online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON
# Let's parse the JSON into a CSV, and then save to a CSV file.
csv = chilkat2.Csv()
csv.HasColumnNames = True
# Set the column names of the CSV.
numColumns = json.SizeOfArray("Columns.Column")
if (numColumns < 0):
print("Unable to get column names")
sys.exit()
i = 0
while i < numColumns :
json.I = i
csv.SetColumnName(i,json.StringOf("Columns.Column[i].ColTitle"))
i = i + 1
# Let's get the rows.
# We'll ignore the Header and Summary, and just get the data.
row = 0
numRows = json.SizeOfArray("Rows.Row[0].Rows.Row")
if (numRows < 0):
print("Unable to get data rows")
sys.exit()
while row < numRows :
json.I = row
numColumns = json.SizeOfArray("Rows.Row[0].Rows.Row[i].ColData")
col = 0
while col < numColumns :
json.J = col
csv.SetCell(row,col,json.StringOf("Rows.Row[0].Rows.Row[i].ColData[j].value"))
col = col + 1
row = row + 1
# Show the CSV
print(csv.SaveToString())
# Save to a CSV file
success = csv.SaveFile("qa_output/customerDetailReport.csv")