Verweisen auf ein Wörterbuch mithilfe einer Eingabezeichenfolge, die der Name des Wörterbuchs ist

Nov 26 2020

Ich schreibe einen Code, der die Liste der Einkäufe in Excel erstellt (zeigt den Preis, den Namen jedes Produkts und am Ende den Gesamtpreis an).

Zum Beispiel erhält es eine Reihe von Zeichenfolgen, die auch Wörterbuchnamen sind.

Außerdem wird eine Excel-Datei mit einer Liste der Einkäufe, deren Preis und Gesamtpreis am Ende erstellt.

Ich weiß nicht, welches Wörterbuch es sein wird, aber ich möchte einen Preis erhalten, der ein Schlüsselpaar ist.

Code: importiere openpyxl als 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')

Antworten

2 fischmalte Nov 26 2020 at 23:24

Ich denke, was Sie suchen könnten, ist locals(), dass unter anderem die verfügbaren Variablen im lokalen Bereich erhalten bleiben , siehe diesen Beitrag .

my_dict = {'apples': 4}

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

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

Nur als Randnotiz, anstatt zu verwenden openpyxl, würde ich empfehlen, Pandas-Datenrahmen zu verwenden , die implementieren .to_csvund .from_csvund für mich viel benutzerfreundlicher sind.