オブジェクトに解析する YAML ファイルがあります。
{'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...
Python でデータにアクセスできず、定期的にエラーが表示されますTypeError: list indices must be integers, not str
対応するすべての要素にアクセスできるようにしたい'name'
ので、各データフィールドを取得するには、次のようになると思います。
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']
そして、各要素は次のような方法でアクセスできると思います['name']['categories']['quick']['directory']
もう少し深いものは次のようになります。
['name']['nomenclature']['data']['latitude']['variable_name']
または私はここで完全に間違っていますか?