![]() |
Populate a table with variables - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Populate a table with variables (/thread-31920.html) |
Populate a table with variables - Market_Python - Jan-09-2021 Hi guys, I need your help please to solve a very basic problem in Python (I think it's simple, but still challenging for me as a beginner ![]() I have created a view variables, say Price_a and Price_b. Price_a = 8.50 Price_b = 10In a next step, I'd like to create a table that shows 'A' and 'B' in the rows and 'price' in the header, so I can populate it with the variables Price_a and Price_b. I generally know how to create tables with numbers, but not how to insert pre-defined variables in such a table. Any help would be greatly appreciated. Many thanks, Peter RE: Populate a table with variables - Larz60+ - Jan-10-2021 read about dictionaries. example: food_prices = { 'Vegetables': { 'Carrots': { 'price': 1.50, }, 'Onions': { 'price': 1.99, 'unit': 'lb' } }, 'Fruit': { 'Orange': { 'price': 5.50, 'unit': 'dozen' }, 'Apples': { 'price': 4.95, 'unit': 'dozen' } } } # display dictionay data def display_dict(dictname, level=0): indent = " " * (4 * level) for key, value in dictname.items(): if isinstance(value, dict): print(f'\n{indent}{key}') level += 1 display_dict(value, level) else: print(f'{indent}{key}: {value}') if level > 0: level -= 1 display_dict(food_prices)when run:
RE: Populate a table with variables - Market_Python - Jan-10-2021 Great, many thanks Larz60+! RE: Populate a table with variables - Larz60+ - Jan-10-2021 added code at bottom on how to access single item food_prices = { 'Vegetables': { 'Carrots': { 'price': 1.50, }, 'Onions': { 'price': 1.99, 'unit': 'lb' } }, 'Fruit': { 'Orange': { 'price': 5.50, 'unit': 'dozen' }, 'Apples': { 'price': 4.95, 'unit': 'dozen' } } } # display dictionary data def display_dict(dictname, level=0): indent = " " * (4 * level) for key, value in dictname.items(): if isinstance(value, dict): print(f'\n{indent}{key}') level += 1 display_dict(value, level) else: print(f'{indent}{key}: {value}') if level > 0: level -= 1 display_dict(food_prices) apple_price = food_prices['Fruit']['Apples']['price'] apple_unit = food_prices['Fruit']['Apples']['unit'] print(f"\nApple price is {apple_price} per {apple_unit}")
RE: Populate a table with variables - Pedroski55 - Jan-11-2021 I just read the word "table". You want a table? Spreadsheet or html? Obviously, Larz60+ knows json and you can import the json module and use json.dumps() to convert his dictionary to a string, then write the string to a file. Like you, I am really just a beginner and only know simple stuff. Save your data as text with csv format (basically, a comma separates column values) and you can open it in any spreadsheet program. So, beginner stuff, easy to understand what's happening: path = '/home/pedro/winter2020/20PY/dumpFiles/' item = 'X' goods = [] headers = ('Item', 'Buy', 'Sell') goods.append(headers) while True: print('Enter nothing to quit.') item = input('What goods are we talking about? ') if item == '': break buy_price = input('Enter the purchase price. ') sell_price = input('Enter the sales price. ') tup = (item, buy_price, sell_price) goods.append(tup) output = '' for tup in goods: string = tup[0] + ',' + tup[1] + ',' + tup[2] + '\n' output = output + string savefilename = path + 'prices.csv' # you can open this in any spreadsheet program file = open(savefilename, 'w') file.write(output) file.close() |