dictionary output to text file (beginner) - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: dictionary output to text file (beginner) (/thread-40326.html) |
dictionary output to text file (beginner) - Delg_Dankil - Jul-11-2023 I'm trying to learn Python and I got stuck on something. I'm looping through a dictionary and I'm printing out keys and their associated dictionary values. I now want to take this output from my loop and instead of printing it to the screen, I need to write it to a text file. here is an exmple from the web- with open('datafile1.txt', 'a') as f: f.write('\n') f.write('monkey') f.write('\n') f.write(str(15))I understand how this works, but how do I do the same for my loop? To further complicate things, I don't know if any of my data will throw an error because its value is numneric and not a string. Here is my loop that correctly prints my dictionary elements and values. I need help in how I can redirect the output to a text file. print("\nThis prints the key and its associated values") for person in data['returnData']: print(f"Elid: {person['elid']}, Last Name: {person['name']}")Thanks for taking a look. Delg RE: dictionary output to text file (beginner) - Pedroski55 - Jul-12-2023 You could do that like this. First I need a dictionary containing some data: # open any old text file mytext = '/home/pedro/summer2023/breakingnewsenglish/UK_rationing.txt' with open(mytext) as t: data = t.readlines() print('data list is', len(data), 'long') # make a dictionary # all the keys are integers in this case, all the values are lines of text mydict = {i:data[i] for i in range(len(data))} # show the content of mydict for item in mydict.items(): print(item)Now get some data from the dictionary and put it in a list # an empty list to take the dictionary items you want to save in a text file mylist = [] # just get the first 9 lines for i in range(10): mylist.append(mydict[i]) # show the things to be saved to text for m in mylist: print(m)Now make the list into a string and write the string to the text file # join the list to a string # it is better to make a list than to create strings # strings take up much more memory because they persist, so I have been told mystring = ''.join(mylist) # write the string to a text file dict2text = '/home/pedro/summer2023/breakingnewsenglish/UK_rationing_part.txt' with open(dict2text, 'w') as out: out.write(mystring) print('Some text from a dictionary saved as', dict2text)3 steps to heaven! have fun learning! RE: dictionary output to text file (beginner) - deanhystad - Jul-12-2023 You can tell print() to print to a file.: with open('datafile1.txt', 'a') as f: print("\nThis prints the key and its associated values") # Prints to terminal for person in data['returnData']: print(f"Elid: {person['elid']}, Last Name: {person['name']}", file=f) # Prints to file |