Split of key from JSON response - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Split of key from JSON response (/thread-22946.html) |
Split of key from JSON response - aswini_dubey - Dec-04-2019 HI Team, I get a json response of keys & values from api as below 'fm_data': {'LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~PMC~APAC~China~PMC-CHINA~PMC-CHINA~Leo Pan': {'aggregate': {'fc0_crm': 206000.0, 'fcn0_crm': 107000.0, 'fcn2_crm': 313000.0, 'fcPipe_crm': 50000.0}, 'PMC ModSys': {'fc0_crm': 195000.0, 'fcn0_crm': 107000.0, 'fcn2_crm': 302000.0}, 'PMC FI / PI': {'fc0_crm': 11000.0, 'fcn2_crm': 11000.0, 'fcPipe_crm': 50000.0}}, 'LineofBusiness~PoleBranch~Region~MappedName~::~SME~APAC~India~SME-India': {'aggregate': {'fc0_crm': 622836.6, 'fcn0_crm': 213587.0, 'fcn2_crm': 622836.6}, 'SME Electric': {'fc0_crm': 43300.3, 'fcn0_crm': 213587.0, 'fcn2_crm': 43300.3}, 'SME Gas': {'fc0_crm': 579536.2, 'fcn0_crm': 214302.5, 'fcn2_crm': 579536.2}}, 'LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~HTS~APAC~India~HTS-IND West~HTS-IND West~Vivekananda Majumder': {'aggregate': {'fcn0_crm': 100000.0, 'fcn2_crm': 100000.0}, 'HTS ETO': {'fcn0_crm': 100000.0, 'fcn2_crm': 100000.0}}, 'LineofBusiness~PoleBranch~Region~MappedName~::~HCP~AMER~CSAR~HCP-Andean/Caribbean': {'aggregate': {'fc0_crm': 522928.4, 'fcn0_crm': 248137.7, 'fcn2_crm': 788916.4, 'fcPipe_crm': 308597.7, 'fc8_crm': 17850.2}, 'HCP Software': {'fc0_crm': 33922.2, 'fcn0_crm': 20000.0, 'fcn2_crm': 53922.2, 'fcPipe_crm': 300023.0}, 'HCP Base': {'fc0_crm': 489006.2, 'fcn0_crm': 228137.7, 'fcn2_crm': 734994.1, 'fcPipe_crm': 8574.7, 'fc8_crm': 17850.2}}} I need to get a output like(Delimeter is ~ & ~::~) which need to be separated to different column: LineofBusiness PoleBranch Region MappedName MappedNameSub Owner LOB Type value PMC APAC China PMC-CHINA PMC-CHINA Leo Pan SME APAC India SME-India Null Null ..... for each value as rows. Thanks in advance. RE: Split of key from JSON response - Larz60+ - Dec-04-2019 The data's already in a dictionary. It can be read directly All you need to do is add your formatting example: zz = { 'fm_data': {'LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~PMC~APAC~China~PMC-CHINA~PMC-CHINA~Leo Pan': {'aggregate': {'fc0_crm': 206000.0, 'fcn0_crm': 107000.0, 'fcn2_crm': 313000.0, 'fcPipe_crm': 50000.0}, 'PMC ModSys': {'fc0_crm': 195000.0, 'fcn0_crm': 107000.0, 'fcn2_crm': 302000.0}, 'PMC FI / PI': {'fc0_crm': 11000.0, 'fcn2_crm': 11000.0, 'fcPipe_crm': 50000.0}}, 'LineofBusiness~PoleBranch~Region~MappedName~::~SME~APAC~India~SME-India': {'aggregate': {'fc0_crm': 622836.6, 'fcn0_crm': 213587.0, 'fcn2_crm': 622836.6}, 'SME Electric': {'fc0_crm': 43300.3, 'fcn0_crm': 213587.0, 'fcn2_crm': 43300.3}, 'SME Gas': {'fc0_crm': 579536.2, 'fcn0_crm': 214302.5, 'fcn2_crm': 579536.2}}, 'LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~HTS~APAC~India~HTS-IND West~HTS-IND West~Vivekananda Majumder': {'aggregate': {'fcn0_crm': 100000.0, 'fcn2_crm': 100000.0}, 'HTS ETO': {'fcn0_crm': 100000.0, 'fcn2_crm': 100000.0}}, 'LineofBusiness~PoleBranch~Region~MappedName~::~HCP~AMER~CSAR~HCP-Andean/Caribbean': {'aggregate': {'fc0_crm': 522928.4, 'fcn0_crm': 248137.7, 'fcn2_crm': 788916.4, 'fcPipe_crm': 308597.7, 'fc8_crm': 17850.2}, 'HCP Software': {'fc0_crm': 33922.2, 'fcn0_crm': 20000.0, 'fcn2_crm': 53922.2, 'fcPipe_crm': 300023.0}, 'HCP Base': {'fc0_crm': 489006.2, 'fcn0_crm': 228137.7, 'fcn2_crm': 734994.1, 'fcPipe_crm': 8574.7, 'fc8_crm': 17850.2}}} } def display_dict(dictname, level=0): indent = " " * (4 * level) for key, value in dictname.items(): if isinstance(value, dict): print(f'\n{indent}{key}') level += 1 display_dict(value, level) else: print(f'{indent}{key}: {value}') if level > 0: level -= 1 if __name__ == '__main__': display_dict(zz)results of running above script (I put in code tags for scrolling) fm_data LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~PMC~APAC~China~PMC-CHINA~PMC-CHINA~Leo Pan aggregate fc0_crm: 206000.0 fcn0_crm: 107000.0 fcn2_crm: 313000.0 fcPipe_crm: 50000.0 PMC ModSys fc0_crm: 195000.0 fcn0_crm: 107000.0 fcn2_crm: 302000.0 PMC FI / PI fc0_crm: 11000.0 fcn2_crm: 11000.0 fcPipe_crm: 50000.0 LineofBusiness~PoleBranch~Region~MappedName~::~SME~APAC~India~SME-India aggregate fc0_crm: 622836.6 fcn0_crm: 213587.0 fcn2_crm: 622836.6 SME Electric fc0_crm: 43300.3 fcn0_crm: 213587.0 fcn2_crm: 43300.3 SME Gas fc0_crm: 579536.2 fcn0_crm: 214302.5 fcn2_crm: 579536.2 LineofBusiness~PoleBranch~Region~MappedName~MappedNameSub~Owner~::~HTS~APAC~India~HTS-IND West~HTS-IND West~Vivekananda Majumder aggregate fcn0_crm: 100000.0 fcn2_crm: 100000.0 HTS ETO fcn0_crm: 100000.0 fcn2_crm: 100000.0 LineofBusiness~PoleBranch~Region~MappedName~::~HCP~AMER~CSAR~HCP-Andean/Caribbean aggregate fc0_crm: 522928.4 fcn0_crm: 248137.7 fcn2_crm: 788916.4 fcPipe_crm: 308597.7 fc8_crm: 17850.2 HCP Software fc0_crm: 33922.2 fcn0_crm: 20000.0 fcn2_crm: 53922.2 fcPipe_crm: 300023.0 HCP Base fc0_crm: 489006.2 fcn0_crm: 228137.7 fcn2_crm: 734994.1 fcPipe_crm: 8574.7 fc8_crm: 17850.2 |