¿Cómo leer el diccionario desde un archivo en Python?

Un diccionario en Python es una colección de pares clave-valor , donde la clave siempre es única y, a menudo, necesitamos almacenar un diccionario y volver a leerlo.

Podemos leer un diccionario de un archivo de 3 maneras:

  1. Usando el json.loads()método: Convierte la string del diccionario válido en formato json.
  2. Uso del ast.literal_eval()método: función más segura que la función eval y también se puede usar para la interconversión de todos los tipos de datos que no sean el diccionario.
  3. Usando el pickle.loads()método: También podemos usar el módulo Pickle si el archivo se serializa en un flujo de caracteres.

Fichero de entrada:

Método 1: Usando json.loads():

# importing the module
import json
  
# reading the data from the file
with open('dictionary.txt') as f:
    data = f.read()
  
print("Data type before reconstruction : ", type(data))
      
# reconstructing the data as a dictionary
js = json.loads(data)
  
print("Data type after reconstruction : ", type(js))
print(js)

Producción :

Data type before reconstruction :  <class 'str'>
Data type after reconstruction :  <class 'dict'>
{'Name': 'John', 'Age': 21, 'Id': 28}

Método 2: Usando ast.literal_eval():

# importing the module
import ast
  
# reading the data from the file
with open('dictionary.txt') as f:
    data = f.read()
  
print("Data type before reconstruction : ", type(data))
      
# reconstructing the data as a dictionary
d = ast.literal_eval(data)
  
print("Data type after reconstruction : ", type(d))
print(d)

Producción :

Data type before reconstruction :  <class 'str'>
Data type after reconstruction :  <class 'dict'>
{'Name': 'John', 'Age': 21, 'Id': 28}

Método 3: podemos usar el módulo Pickle para el mismo propósito, pero este método solo funcionará si el archivo se serializa en una secuencia de caracteres y no en formato de texto. Para saber más sobre Pickling en Python haz click aquí

# importing the module
import pickle
  
# opening file in write mode (binary)
file = open("dictionary.txt", "wb")
  
my_dict = {"Name": "John",
           "Age": 21,
           "Id": 28}
  
# serializing dictionary 
pickle.dump(my_dict, file)
  
# closing the file
file.close()
  
# reading the data from the file
with open('dictionary.txt', 'rb') as handle:
    data = handle.read()
  
print("Data type before reconstruction : ", type(data))
  
# reconstructing the data as dictionary
d = pickle.loads(data)
  
print("Data type after reconstruction : ", type(d))
print(d)

Producción :

Data type before reconstruction :  <class 'bytes'>
Data type after reconstruction :  <class 'dict'>
{'Name': 'John', 'Age': 21, 'Id': 28}

Publicación traducida automáticamente

Artículo escrito por Soham_Lanke y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *