[译]如何将字典值写入一个文本文件?

原文来源:https://stackoverflow.com/questions/36965507/writing-a-dictionary-to-a-text-file

我有一个字典,我打算把它写入一个文件。

exDict = {1:1, 2:2, 3:3}
with open('file.txt', 'r') as file:
    file.write(exDict)

我遇到了这样的错误:

file.write(exDict)
TypeError: must be str, not dict

我修复了刚才的错误

exDict = {111:111, 222:222}
with open('file.txt', 'r') as file:
    file.write(str(exDict))

但另一个错误出现了

file.write(str(exDict))
io.UnsupportedOperation: not writable

第一个错误是因为:你要用read模式打开一个文件,尝试写入内容。这个需要查看python IO模块
第二个错误是因为:你只是将字符串写入文件。如果你想要写入字典对象,你要么需要将它转为string对象,要么将它转化为可序列化对象。
下面是Python3的写法:

import json
# as requested in comment
exDict = {'exDict': exDict}
with open('file.txt', 'w') as file:
     file.write(json.dumps(exDict))
# 使用json.loads读取文本变为字典
In case of serialization
import cPickle as pickle
with open('file.txt', 'w') as file:
     file.write(pickle.dumps(exDict))
# 使用pickle.loads读取文本变为字典

原文地址:https://www.cnblogs.com/everfight/p/write_dict_to_text.html

时间: 2024-08-28 20:05:05

[译]如何将字典值写入一个文本文件?的相关文章

08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个key中。即:{'k1':<66的所有值,'k2':>=66的所有值}

li = [11,22,33,44,55,66,77,88,99]dict = {'k1':[],'k2':[]}for i in li:    if i < 66:        dict["k1"].append(i)    else:        dict['k2'].append(i)print(dict) 08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个ke

Django模板如何用一个变量查找字典值

mydict = {"key1":"value1", "key2":"value2"} 在Django模板中查找字典值的常规方法是{{mydict.key1}},{{mydict.key2}}.如果键是循环变量怎么办?即: {% for item in list %} # list中元素,都有一个NAME属性 {{ mydict.item.NAME }} # 取出字典中相对应的NAME属性的key对应的value {% end

一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存

Top K 算法详解应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节.        假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个.一个查询串的重复度越高,说明查询它的用户越多,也就是越热门.),请你统计最热门的10个查询串,要求使用的内存不能超过1G. 必备知识:什么是哈希表?        哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进

delphi怎么创建一个文本文件

//创建一个文本文件 procedure TFrmAutomatismBalance.FlatButton3Click(Sender: TObject); var TF:TextFile;  PathStr:string; begin PathStr:=ExtractFilePath(Application.ExeName)+FormatDateTime('yyyy-mm-dd',Now())+'.txt' ;  AssignFile(Tf,PathStr);  ReWrite(Tf);  Cl

StreamReader和StreamWriter 读取 写入一个文本文档

////使用StreamReader来读取一个文本文件 //using (StreamReader sr = new StreamReader(@"C:\Users\Administrator\Desktop\sb.txt",Encoding.Default)) //{ // while(!sr.EndOfStream) // { // Console.WriteLine(sr.ReadLine()); // } //} //Console.ReadKey(); //使用StreamW

Python字典按值排序、包含字典的列表按字典值排序的方法

#-*- encoding=utf-8 -*- import operator #按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) print sorted_x #[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] #如果要降序排序,可以指定reverse=True sorted_x = sorted(x.i

怎样根据一个从一个文本文件中逐一读出每行的字符串(代表的是某个文件夹下的文件名)

怎样根据一个从一个文本文件中逐一读出每行的字符串(代表的是每个文件夹下的文件名) 目的是想根据此文本文件所存储大量的文件名,批量复制或者修改文件名所对应的文件. 在bash下用的命令是: cat /home/username/SafeAppsName.txt | xargs -I{} cp /mnt/apk/apks/{}   /home/username/apks/ 从SafeAppsName.txt中读每行字符串,代表对应文件的文件名. 然后从 /mnt/apk/apks 文件夹下进行拷贝到

将字典直接写入文件,出现中文乱码问题

下面直接将字典写入文件,出现乱码: 解决办法:现将字典NSData,再进行归档NSKeyedArchiver 将字典直接写入文件,出现中文乱码问题,布布扣,bubuko.com

将C盘一个文本文件复制到D盘。

//将C盘一个文本文件复制到D盘./*复制的原理:其实就是将C盘下的文件数据存储到D盘的一个文件中. 步骤:1.在D盘创建一个文件,用于存储C盘文件中的数据.2.定义读取流和C盘文件关联.3.通过不断的读写完成数据存储.4.关闭资源. */ public class CopyText { public static void main(String[] args) throws IOException { copy_2(); } public static void copy_2() { Fil