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:
- Usando el
json.loads()
método: Convierte la string del diccionario válido en formato json. - 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. - Usando el
pickle.loads()
método: También podemos usar el módulo Pickle si el archivo se serializa en un flujo de caracteres.
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