在词频统计时,我们会得到一个dict
类型的结果,本篇文章介绍python
怎样读写该结果。
1 写
# fname: 存储路径
# obj: 存储对象(dict)
def save(fname, obj):
with open(fname, "wb") as fwrt:
fwrt.write(repr(obj).encode("utf-8"))
2 读
读的话需要使用json
。json
是一种轻量级的数据交换形式,我们可以使用json.load()
来解码json
数据。
以菜鸟教程为例:
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)
这样就可以将jsonData
以dict
的形式存储到text
中。
可以看到jsonData
是有格式的:里面的key
必须是双引号。我们上面介绍的存储方式是单引号形式,因此得做一个变换:
import json
jsonData = '{'a':1,'b':2,'c':3,'d':4,'e':5}'
jsonData.replace("'","\"")
text = json.loads(jsonData)
print(text)
如果在jsonData
里有\
,,那应该再多加一步:
jsonData.replace("'","\"").replace("\\", "\\\\")
对某一个存有dict
的文件,我们可以这样读取:(我是导入了词频统计的结果)
def load_vocab(srcf):
# 导入词频统计的结果
with open(srcf, 'r', encoding='utf-8') as f:
line = f.readline()
line = line.replace("'", "\"").replace("\\", "\\\\")
vocab = json.loads(line)
return vocab