Jak odwołać się do słownika za pomocą ciągu wejściowego, który jest nazwą słownika
Nov 26 2020
Piszę kod, który tworzy listę zakupów w Excelu (pokazuje cenę, nazwę każdego produktu i pokazuje na końcu cenę całkowitą).
Na przykład pobiera pewną liczbę ciągów, które są również nazwami słowników.
I tworzy plik Excela z listą zakupów, ich ceną i całkowitą ceną na końcu.
Nie wiem, jaki to będzie słownik, ale chcę uzyskać cenę, która jest parą kluczy.
Kod: importuj openpyxl jako 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')
Odpowiedzi
2 fischmalte Nov 26 2020 at 23:24
Domyślam się, że to, czego szukasz, to locals()
przechowywanie między innymi dostępnych zmiennych w zakresie lokalnym, zobacz ten post .
my_dict = {'apples': 4}
# assume user input is `my_dict`
dict_name = input()
# return the dictionary's values
print(locals()[dict_name])
Podobnie jak marginesie, zamiast używania openpyxl
, polecam użyć pandy dataframes , które implementują .to_csv
i .from_csv
i jest dla mnie o wiele bardziej przyjazny dla użytkownika.