importjsonfromdatetimeimportdatetimefromgroupdocs.assemblyimportDataSourceInfo,DocumentAssemblerdefparse_dates(item):# JSON has no dates: turn the order dates into datetime objects for the templateforkeyin("OrderDate","ShippingDate"):ifkeyinitem:item[key]=datetime.strptime(item[key],"%Y-%m-%dT%H:%M:%S")returnitemwithopen("orders.json",encoding="utf-8")asf:orders=json.load(f,object_hook=parse_dates)assembler=DocumentAssembler()assembler.assemble_document("chart-with-filtering-and-dynamic-title.msg","chart-with-filtering-and-dynamic-title-report.msg",[DataSourceInfo(orders,"orders"),DataSourceInfo("Harbor Lane orders by customer, 2015","title"),DataSourceInfo("Harbor Lane Provisions <orders@harborlane.example>","sender"),DataSourceInfo(["Quayside Bistro <orders@quaysidebistro.example>","jonas.weber@harborlane.example"],"recipients"),DataSourceInfo("amara.osei@harborlane.example","cc"),DataSourceInfo("Chart with filtering and dynamic title","subject"),])