{ "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.0" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3.8.0 64-bit ('3.8.0-amd64': pyenv)", "metadata": { "interpreter": { "hash": "2334294e789e06453e89f7d5c3c2573679701f9bb5b76ad2158f91cca5c9244c" } } } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ " Τμήμα Πληροφορικής και Τηλεπικοινωνιών - Άρτα \n", " Πανεπιστήμιο Ιωαννίνων \n", "\n", " Γκόγκος Χρήστος \n", " http://chgogos.github.io/\n", " Εαρινό εξάμηνο 2020-2021" ], "cell_type": "markdown", "metadata": {} }, { "source": [ "# YAML (Yet Another Markup Language)" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: pyyaml in c:\\users\\chgogos\\.pyenv\\pyenv-win\\versions\\3.8.0-amd64\\lib\\site-packages (5.4.1)\n" ] } ], "source": [ "!pip install pyyaml" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['AliasEvent', 'AliasToken', 'AnchorToken', 'BaseDumper', 'BaseLoader', 'BlockEndToken', 'BlockEntryToken', 'BlockMappingStartToken', 'BlockSequenceStartToken', 'CBaseDumper', 'CBaseLoader', 'CDumper', 'CFullLoader', 'CLoader', 'CSafeDumper', 'CSafeLoader', 'CUnsafeLoader', 'CollectionEndEvent', 'CollectionNode', 'CollectionStartEvent', 'DirectiveToken', 'DocumentEndEvent', 'DocumentEndToken', 'DocumentStartEvent', 'DocumentStartToken', 'Dumper', 'Event', 'FlowEntryToken', 'FlowMappingEndToken', 'FlowMappingStartToken', 'FlowSequenceEndToken', 'FlowSequenceStartToken', 'FullLoader', 'KeyToken', 'Loader', 'MappingEndEvent', 'MappingNode', 'MappingStartEvent', 'Mark', 'MarkedYAMLError', 'Node', 'NodeEvent', 'SafeDumper', 'SafeLoader', 'ScalarEvent', 'ScalarNode', 'ScalarToken', 'SequenceEndEvent', 'SequenceNode', 'SequenceStartEvent', 'StreamEndEvent', 'StreamEndToken', 'StreamStartEvent', 'StreamStartToken', 'TagToken', 'Token', 'UnsafeLoader', 'ValueToken', 'YAMLError', 'YAMLLoadWarning', 'YAMLObject', 'YAMLObjectMetaclass', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '__with_libyaml__', '_warnings_enabled', '_yaml', 'add_constructor', 'add_implicit_resolver', 'add_multi_constructor', 'add_multi_representer', 'add_path_resolver', 'add_representer', 'compose', 'compose_all', 'composer', 'constructor', 'cyaml', 'dump', 'dump_all', 'dumper', 'emit', 'emitter', 'error', 'events', 'full_load', 'full_load_all', 'io', 'load', 'load_all', 'load_warning', 'loader', 'nodes', 'parse', 'parser', 'reader', 'representer', 'resolver', 'safe_dump', 'safe_dump_all', 'safe_load', 'safe_load_all', 'scan', 'scanner', 'serialize', 'serialize_all', 'serializer', 'tokens', 'unsafe_load', 'unsafe_load_all', 'warnings']\n" ] } ], "source": [ "import yaml\n", "\n", "print(dir(yaml))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{'firstName': 'Γιάννης', 'lastName': 'Παπαδόπουλος', 'age': 30, 'married': True, 'email': None, 'address': {'streetAddress': 'Ανεξαρτησίας 33', 'city': 'Άρτα', 'state': 'Ήπειρος', 'postalCode': '45221'}, 'phoneNumbers': [{'type': 'home', 'number': '00302681123456'}, {'type': 'work', 'number': '00302681654321'}, {'type': 'mobile', 'number': '00306971234567'}]}\n" ] } ], "source": [ "with open('..\\..\\..\\datasets\\person.yaml', encoding=\"utf-8\") as file:\n", " a_person = yaml.load(file, Loader=yaml.FullLoader)\n", "\n", "print(a_person)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Γιάννης\nΆρτα\nhome 00302681123456\nwork 00302681654321\nmobile 00306971234567\n" ] } ], "source": [ "print(a_person['firstName'])\n", "print(a_person['address']['city'])\n", "for phone in a_person['phoneNumbers']:\n", " print(phone['type'], phone['number'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ] }