I have a YAML file that parses an object, for example:
{'name': [{'proj_directory': '/directory/'}, {'categories': [{'quick': [{'directory': 'quick'}, {'description': None}, {'table_name': 'quick'}]}, {'intermediate': [{'directory': 'intermediate'}, {'description': None}, {'table_name': 'intermediate'}]}, {'research': [{'directory': 'research'}, {'description': None}, {'table_name': 'research'}]}]}, {'nomenclature': [{'extension': 'nc'} {'handler': 'script'}, {'filename': [{'id': [{'type': 'VARCHAR'}]}, {'date': [{'type': 'DATE'}]}, {'v': [{'type': 'INT'}]}]}, {'data': [{'time': [{'variable_name': 'time'}, {'units': 'minutes since 1-1-1980 00:00 UTC'}, {'latitude': [{'variable_n...
I'm having problems accessing data in python and regularly looking at TypeError: list indices must be integers, not str errors TypeError: list indices must be integers, not str
I want to have access to all elements matching 'name' , so to retrieve each data field, I assume that it will look something like this:
import yaml settings_stream = open('file.yaml', 'r') settingsMap = yaml.safe_load(settings_stream) yaml_stream = True print 'loaded settings for: ', for project in settingsMap: print project + ', ' + settingsMap[project]['project_directory']
and I would expect each item to be accessible via something like ['name']['categories']['quick']['directory']
and something a little deeper:
['name']['nomenclature']['data']['latitude']['variable_name']
or am I completely wrong here?