0
点赞
收藏
分享

微信扫一扫

python与txt交互(交互信息为dict类型)

爪哇驿站 2022-03-26 阅读 160
python

在词频统计时,我们会得到一个dict类型的结果,本篇文章介绍python怎样读写该结果。

1 写

# fname: 存储路径
# obj: 存储对象(dict)
def save(fname, obj):
    with open(fname, "wb") as fwrt:
        fwrt.write(repr(obj).encode("utf-8"))

2 读

读的话需要使用jsonjson是一种轻量级的数据交换形式,我们可以使用json.load()来解码json数据。
以菜鸟教程为例:

import json

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = json.loads(jsonData)
print(text)

这样就可以将jsonDatadict的形式存储到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
举报

相关推荐

0 条评论