b2b_records = [] # Flatten B2B section for fp in data.get('fp', []): # fp = tax period for b2b in fp.get('b2b', []): for inv in b2b.get('inv', []): for item in inv.get('itms', []): itm_det = item.get('itm_det', {}) b2b_records.append( 'Supplier GSTIN': b2b.get('ctin'), 'Invoice No': inv.get('inum'), 'Invoice Date': inv.get('idt'), 'Invoice Value': inv.get('val'), 'Taxable Value': itm_det.get('txval'), 'CGST': itm_det.get('iamt', 0), 'SGST': itm_det.get('samt', 0), 'IGST': itm_det.get('iamt', 0), 'Cess': itm_det.get('csamt', 0), 'Rate': itm_det.get('rt'), 'Place of Supply': inv.get('pos'), 'Reverse Charge': inv.get('rchrg') )
Using a dedicated GSTR 2A to Excel converter (desktop software or web app with privacy). GSTR 2A - JSON to Excel Converter
Less than 30 seconds.
df = pd.DataFrame(b2b_records)