<jupyter_start><jupyter_text>Carga de Archivos **Python** permite cargar archivos de dos maneras. La primera permite cargar archivos planos como json, csv o archivos planos. La segunda permite cargar objetos de **Python**, que han sido serializados y almacenados previamente en disco duro.  Cargando JSON Cargaremos dos datasets usando el módulo `json`. Uno contiene información básica acerca de algunos restaurantes en Nueva York. El segundo contiene información relevante de la serie Juego de Tronos.<jupyter_code>import json
from pprint import pprint

with open('data/file_load/restaurantes.json') as data_file:    
    data = json.load(data_file)<jupyter_output><empty_output><jupyter_text>`restaurantes.json` es una lista de diccionarios.<jupyter_code>data[:5]
pprint(data[0])<jupyter_output>{'cuisine': 'American', 'id': 1, 'name': 'Cheesecake Factory'}<jupyter_text>Cargamos el dataset `game_of_thrones.json` y examinamos su contenido<jupyter_code>with open('data/file_load/game_of_thrones.json') as data_file:    
    data = json.load(data_file)<jupyter_output><empty_output><jupyter_text>El dataset consiste en un diccionario, cuyas claves corresponden a diferentes atributos de la serie.<jupyter_code>print (data.keys())<jupyter_output>dict_keys(['id', 'url', 'name', 'type', 'language', 'genres', 'status', 'runtime', 'premiered', 'officialSite', 'schedule', 'rating', 'weight', 'network', 'webChannel', 'externals', 'image', 'summary', 'updated', '_links', '_embedded'])<jupyter_text>Tambien alberga información de cada capítulo a 2017<jupyter_code>print (len(data['_embedded']['episodes']))
test1 = data['_embedded']['episodes']
for movie in test1:
    print (movie['name'])
pprint(data['_embedded']['episodes'][-5:])<jupyter_output>[{'_links': {'self': {'href': 'http://api.tvmaze.com/episodes/1221411'}},
  'airdate': '2017-07-30',
  'airstamp': '2017-07-31T01:00:00+00:00',
  'airtime': '21:00',
  'id': 1221411,
  'image': {'medium': 'http://static.tvmaze.com/uploads/images/medium_landscape/122/306938.jpg',
            'original': 'http://static.tvmaze.com/uploads/images/original_untouched/122/306938.jpg'},
  'name': "The Queen's Justice",
  'number': 3,
  'runtime': 60,
  'season': 7,
  'summary': '<p>Daenerys holds court. Cersei returns a gift. Jaime learns '
             'from his mistakes.</p>',
  'url': 'http://www.tvmaze.com/episodes/1221411/game-of-thrones-7x03-the-queens-justice'},
 {'_links': {'self': {'href': 'http://api.tvmaze.com/episodes/1221412'}},
  'airdate': '2017-08-06',
  'airstamp': '2017-08-07T01:00:00+00:00',
  'airtime': '21:00',
  'id': 1221412,
  'image': {'medium': 'http://static.tvmaze.com/uploads/images/medium_landscape/123/307677.jpg',
            'original': 'http://static.tvmaze.com/[...]<jupyter_text>Cargando CSV A continuación cargaremos un archivo separado por el caracter `|`. Corresponden a datos personales de usuarios de una red social de calificación de películas<jupyter_code>import csv
with open('data/file_load/user-data.csv', 'r') as csvfile:
    user_data = csv.reader(csvfile, delimiter='|')
    data = list(user_data)<jupyter_output><empty_output><jupyter_text>Explorando data, encontramos que cada registro corresponde a un usuario. La información allí mostrada corresponde a un identificador único, edad, género, ocupación y zip code.<jupyter_code>data[:5]<jupyter_output><empty_output><jupyter_text>Cargando texto plano A continuación cargaremos un archivo de texto que contiene las obras de Shakespeare. El archivo será cargado como una lista de strings, donde cada elemento corresponde a una línea del archivo de texto.<jupyter_code>with open("data/file_load/shakespeare.txt") as f:  
    data = f.readlines()
type(data)
len(data)
data[:15]<jupyter_output><empty_output><jupyter_text>Cargando Pickle [**Pickle**](https://wiki.python.org/moin/UsingPickle) nos permite serializar casi todo tipo de objetos en Python. Sin embargo, existen elementos como clases, funciones y metodos que no pueden ser almacenados usando Pickle. Cuando se almacene una instancia de una clase, Pickle no almacenará la clase del objeto, sino una cadena de caracteres que identifique a qué clase pertenece el objeto. A continuación usaremos el conjunto de datos de usuarios del sitio de revisión de películas y almacenaremos los primeros cinco usuarios usando Pickle. Posteriormente los cargaremos usando también Pickle.<jupyter_code>import pickle

with open('data/file_load/user-data.csv', 'r') as csvfile:
    user_data = csv.reader(csvfile, delimiter='|')
    data = list(user_data)
data[-5:]
pickle.dump(data[-5:], open("data/file_load/user_data.pkl", "wb"))<jupyter_output><empty_output><jupyter_text>Ahora cargamos el archivo pickle de la siguiente manera:<jupyter_code>user_data = pickle.load(open("data/file_load/user_data.pkl", "rb" ))
user_data<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13421432996076813, 'fraction_numerical': 0.029733636175924016, 'mean_word_length': 6.0202898550724635, 'pattern_counts': {'":': 0, '<': 40, '<?xml version=': 0, '>': 40, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '291956', 'license': 'MIT', 'n_tokens_mistral': 1821, 'n_tokens_neox': 1721, 'n_words': 428, 'path': 'Sesion1_Python_Carga_Archivos.ipynb', 'repo_name': 'vramirez/2019BWB', 'size': '4843'}