Saltar al contenido

Cómo almacenar un diccionario de Python como una variable de entorno

Contamos con el hallazgo a este atolladero, o por lo menos eso esperamos. Si sigues con alguna inquietud coméntalo, para nosotros será un placer ayudarte

Solución:

No sé si esto es lo que estabas buscando, pero terminé aquí mientras intentaba guardar un diccionario como una variable de entorno de Linux para consumirlo en mi aplicación.

Lo que hice fue guardarlo como un string Me gusta esto:

export BUILDING_ADMINS="'+27792955555': 'De Wet','+27722855555': 'Marysol','+27878085555': 'Blomerus''

Y luego, en su código python, lo lee y lo transforma en un diccionario usando esto (tomado de: ¿Convertir una representación de cadena de un diccionario en un diccionario?):

import ast
import os

ba_dict = ast.literal_eval(os.environ["BUILDING_ADMINS"])

si escribes

type(ba_dict)

Deberías ver tu string ahora es un dictado.


¡Espero que esto ayude a alguien más!

Una variable de entorno no es algo que a un usuario de script le gustaría establecer. Utilizar el json módulo y un archivo:

import json

with open('numbers') as f:
    numbers = json.load(f)

print numbers['+27792955555']    #  De Wet

Al empujar a GitHub, no confirme el numbers expediente. Tal vez confirme uno de ejemplo y agregue el real a su .gitignore.

Si elige usar el entorno, debe serializar el diccionario de Python como JSON y volcarlo/cargarlo al configurar/obtener la variable de entorno. Puede acceder al entorno utilizando os del módulo environ attribute. Puede volcar/cargar JSON usando el json módulo. Es posible que desee tener cuidado con la longitud máxima de las variables de entorno si existe tal cosa.

Si yo fuera usted, usaría una base de datos sqlite, consulte https://docs.python.org/2/library/sqlite3.html. Esto le daría persistencia, un esquema definido y una buena interfaz para manejar sus datos.

Al final de todo puedes encontrar las aclaraciones de otros administradores, tú además eres capaz mostrar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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