Cómo hacer referencia a un diccionario usando una cadena de entrada que es el nombre del diccionario

Nov 26 2020

Escribo un código que crea la lista de compras en excel (muestra precio, nombre de cada producto y muestra el precio total al final).

Por ejemplo, obtiene un cierto número de cadenas que también son nombres de diccionario.

Y crea un archivo de Excel con una lista de compras, su precio y el precio total al final.

No sé qué diccionario será, pero quiero obtener un precio que sea un par de claves.

Código: importar openpyxl como xl

    Milk = {
    "name": "Milk",
    "price":  1,
    "id": "01",
    }
    
    Chicken = {
    "name": "Chicken",
    "price": 5,
    "id": "02"
    }
    wb = xl.load_workbook('List.xlsx')
    
    sheet = wb['Лист1']
    
    command = ''
    
    num = int(input())
    
    for row in range(2,num):
       command = input()
       
       value = command
       command = sheet.cell(row,1)
       command.value = value
       command = sheet.cell(row,2)
       key = 'price'
       
       command.value = command.get("price")
    wb.save('transactions3.xlsx')

Respuestas

2 fischmalte Nov 26 2020 at 23:24

Supongo que lo que podría estar buscando es locals()que mantenga, entre otras, las variables disponibles en el ámbito local, vea esta publicación .

my_dict = {'apples': 4}

# assume user input is `my_dict`
dict_name = input()

# return the dictionary's values
print(locals()[dict_name])

Así como una nota al margen, en lugar de utilizar openpyxl, yo recomendaría usar pandas tramas de datos , que implementan .to_csvy .from_csvya me es mucho más fácil de usar.