On Jun 14, 7:13 pm, dmitrey <[EMAIL PROTECTED]> wrote: > hi all, > what's the best way to write Python dictionary to a file? > > (and then read) > > There could be unicode field names and values encountered.
I'm presuming that "field names" means "dictionary keys". If not unicode, are the remainder of the keys and values: strings encoded in ASCII? strings encoded otherwise? neither str nor unicode? > Thank you in advance, D. "Best" depends on how you measure it. cPickle is one alternative (ensure you use protocol=-1). Speed should be OK, but format not documented AFAIK other than in the source code, so not readable outside the Python universe. Also it won't matter what types of data you have. A portable alternative (and simple enough if all your data are str/ unicode) would be to encode all your strings as UTF-8, and then write the key/value pairs out to a csv file: # untested pseudocode for basestring-only case: for k, v in mydict.iteritems(): csv_writer.writerow((k.encode('utf8'), v.encode('utf8'))) # if you have str instances encoded other than in ASCII or your system's default encoding, you'll have to work a bit harder ... Cheers, John -- http://mail.python.org/mailman/listinfo/python-list