Write dictionary to file using For loop The simple method to write a dictionary to a text file is by using the 'for' loop. First Open the file in write mode by using the File open() method. Then Get the key and value pair using the dictionary items() method from the Dictionary.
In Python to convert a dictionary to CSV use the dictwriter() method. This method is used to insert data into the CSV file. In Python, the CSV module stores the dictwriter() method. It creates an object and works like the dictwriter().
First of all you are opening file in read mode and trying to write into it. Consult - IO modes python
Secondly, you can only write a string to a file. If you want to write a dictionary object, you either need to convert it into string or serialize it.
import json
# as requested in comment
exDict = {'exDict': exDict}
with open('file.txt', 'w') as file:
file.write(json.dumps(exDict)) # use `json.loads` to do the reverse
In case of serialization
import cPickle as pickle
with open('file.txt', 'w') as file:
file.write(pickle.dumps(exDict)) # use `pickle.loads` to do the reverse
For python 3.x pickle package import would be different
import _pickle as pickle
I do it like this in python 3:
with open('myfile.txt', 'w') as f:
print(mydictionary, file=f)
fout = "/your/outfile/here.txt"
fo = open(fout, "w")
for k, v in yourDictionary.items():
fo.write(str(k) + ' >>> '+ str(v) + '\n\n')
fo.close()
The probelm with your first code block was that you were opening the file as 'r' even though you wanted to write to it using 'w'
with open('/Users/your/path/foo','w') as data:
data.write(str(dictionary))
If you want a dictionary you can import from a file by name, and also that adds entries that are nicely sorted, and contains strings you want to preserve, you can try this:
data = {'A': 'a', 'B': 'b', }
with open('file.py','w') as file:
file.write("dictionary_name = { \n")
for k in sorted (data.keys()):
file.write("'%s':'%s', \n" % (k, data[k]))
file.write("}")
Then to import:
from file import dictionary_name
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With