Aug-22-2024, 06:30 PM
I have a dictionary:
{'Q_MGR_NAME': 'BOBBEE2', 'START_DATE': '2024-08-21', 'START_TIME': '05.08.47', 'END_DATE': '2024-08-21', 'END_TIME': '05.09.47', 'COMMAND_LEVEL': 940, 'OBJECT_COUNT': 2, 'Q_STATISTICS_DATA': {'SYSTEM.ADMIN.COMMAND.QUEUE': {'Q_NAME': 'SYSTEM.ADMIN.COMMAND.QUEUE', 'CREATION_DATE': '2023-04-18', 'CREATION_TIME': '12.32.19', 'Q_TYPE': 'LOCAL', 'DEFINITION_TYPE': 'PREDEFINED', 'Q_MIN_DEPTH': 0, 'Q_MAX_DEPTH': 0, 'AVG_Q_TIME': [0, 0], 'PUTS': [17, 0], 'PUTS_FAILED': 0, 'PUT1S': [0, 0], 'PUT1S_FAILED': 0, 'PUT_BYTES': [1512, 0], 'GETS': [17, 0], 'GET_BYTES': [1512, 0], 'GETS_FAILED': 0, 'BROWSES': [0, 0], 'BROWSE_BYTES': [0, 0], 'BROWSES_FAILED': 0, 'MSGS_NOT_QUEUED': 17, 'MSGS_EXPIRED': 0, 'MSGS_PURGED': 0}, 'PYMQI': {'Q_NAME': 'PYMQI', 'CREATION_DATE': '2024-08-14', 'CREATION_TIME': '07.39.31', 'Q_TYPE': 'LOCAL', 'DEFINITION_TYPE': 'PREDEFINED', 'Q_MIN_DEPTH': 40, 'Q_MAX_DEPTH': 60, 'AVG_Q_TIME': [0, 0], 'PUTS': [20, 0], 'PUTS_FAILED': 0, 'PUT1S': [0, 0], 'PUT1S_FAILED': 0, 'PUT_BYTES': [20480, 0], 'GETS': [0, 0], 'GET_BYTES': [0, 0], 'GETS_FAILED': 0, 'BROWSES': [0, 0], 'BROWSE_BYTES': [0, 0], 'BROWSES_FAILED': 0, 'MSGS_NOT_QUEUED': 0, 'MSGS_EXPIRED': 0, 'MSGS_PURGED': 0}}}
I have a routine that gives me the PATH to the two nested dictionaries with Q_NAME elements:
Value SYSTEM.ADMIN.COMMAND.QUEUE found at ['Q_STATISTICS_DATA']['SYSTEM.ADMIN.COMMAND.QUEUE']['Q_NAME']
Value PYMQI found at ['Q_STATISTICS_DATA']['PYMQI']['Q_NAME']
I use this to try to get the list of keys, but get the following error:
print('Keys of = ", new_test_dict.Q_STATISTICS_DATA.SYSTEM.ADMIN.COMMAND.QUEUE.keys())
AttributeError: 'dict' object has no attribute 'Q_STATISTICS_DATA'
{'Q_MGR_NAME': 'BOBBEE2', 'START_DATE': '2024-08-21', 'START_TIME': '05.08.47', 'END_DATE': '2024-08-21', 'END_TIME': '05.09.47', 'COMMAND_LEVEL': 940, 'OBJECT_COUNT': 2, 'Q_STATISTICS_DATA': {'SYSTEM.ADMIN.COMMAND.QUEUE': {'Q_NAME': 'SYSTEM.ADMIN.COMMAND.QUEUE', 'CREATION_DATE': '2023-04-18', 'CREATION_TIME': '12.32.19', 'Q_TYPE': 'LOCAL', 'DEFINITION_TYPE': 'PREDEFINED', 'Q_MIN_DEPTH': 0, 'Q_MAX_DEPTH': 0, 'AVG_Q_TIME': [0, 0], 'PUTS': [17, 0], 'PUTS_FAILED': 0, 'PUT1S': [0, 0], 'PUT1S_FAILED': 0, 'PUT_BYTES': [1512, 0], 'GETS': [17, 0], 'GET_BYTES': [1512, 0], 'GETS_FAILED': 0, 'BROWSES': [0, 0], 'BROWSE_BYTES': [0, 0], 'BROWSES_FAILED': 0, 'MSGS_NOT_QUEUED': 17, 'MSGS_EXPIRED': 0, 'MSGS_PURGED': 0}, 'PYMQI': {'Q_NAME': 'PYMQI', 'CREATION_DATE': '2024-08-14', 'CREATION_TIME': '07.39.31', 'Q_TYPE': 'LOCAL', 'DEFINITION_TYPE': 'PREDEFINED', 'Q_MIN_DEPTH': 40, 'Q_MAX_DEPTH': 60, 'AVG_Q_TIME': [0, 0], 'PUTS': [20, 0], 'PUTS_FAILED': 0, 'PUT1S': [0, 0], 'PUT1S_FAILED': 0, 'PUT_BYTES': [20480, 0], 'GETS': [0, 0], 'GET_BYTES': [0, 0], 'GETS_FAILED': 0, 'BROWSES': [0, 0], 'BROWSE_BYTES': [0, 0], 'BROWSES_FAILED': 0, 'MSGS_NOT_QUEUED': 0, 'MSGS_EXPIRED': 0, 'MSGS_PURGED': 0}}}
I have a routine that gives me the PATH to the two nested dictionaries with Q_NAME elements:
Value SYSTEM.ADMIN.COMMAND.QUEUE found at ['Q_STATISTICS_DATA']['SYSTEM.ADMIN.COMMAND.QUEUE']['Q_NAME']
Value PYMQI found at ['Q_STATISTICS_DATA']['PYMQI']['Q_NAME']
I use this to try to get the list of keys, but get the following error:
print('Keys of = ", new_test_dict.Q_STATISTICS_DATA.SYSTEM.ADMIN.COMMAND.QUEUE.keys())
AttributeError: 'dict' object has no attribute 'Q_STATISTICS_DATA'