python模块-jsonpickle

Posted forever77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模块-jsonpickle相关的知识,希望对你有一定的参考价值。

json模块

用于文件处理时的其他数据类型与js字符串之间转换。在将其他数据类型转换为js字符串时,首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串;在使用时再将js字符串还原为本来的数据。

两对方法json.dumps()和json.loads(),json.dump()和json.load()

import json
l=[1,hello,{name:Alex}]
with open(new.txt,w) as f:
    l_str=json.dumps(l)  #将列表l转换为js字符串
    f.write(l_str)  #将字符串写入文本
    print(l_str, type(l_str))  #输出[1,"hello", {"name": "Alex"}] <class ‘str‘>,可以看见原列表中所有的单引号全部变成了双引号

with open(new.txt,r) as f:
    l=f.read()
    print(l,json.loads(l),type(json.loads(l)))  #输出[1,"hello", {"name": "Alex"}] [1,‘hello‘, {‘name‘: ‘Alex‘}] <class ‘list‘>

上述最后一行可以看见,由于写入时为js字符串,直接读取时也为js字符串,即引号全部为双引号,而json.loads()是将json处理过的字符串变成了原来的列表,并且处理过的双引号全部变回了单引号

在上述文件中,转换和写操作l_str=json.dumps(l)和f.write(l_str)可以用一步json.dump(l,f)代替

在上述文件中,读和转换操作l=f.read()和json.loads(l)可以用一步json.load(f)代替

以上是关于python模块-jsonpickle的主要内容,如果未能解决你的问题,请参考以下文章

使用 jsonpickle (python) 进行类型演化

Python:使用jsonpickle无法两次或多次打印同一个对象。

Python 序列化JsonPickle

python序列化与反序列化(jsonpickle)

python3教程:jsonpickle和sqlite3持久化存储字典对象

使用 jsonpickle 从文件中保存和加载对象