Python学习者可加群交流:651707058
a = 1
程序中的a是随时可以修改的变量,比如把a改成2,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的a=2存储到磁盘上,下次重新运行程序,变量又被初始化为a=1。但是只要我们学会了json库的使用方法,就可以解决这一问题。
import json
info = {
'name':'刘处玄',
'age':22,
'job':'student',
}
现在有如上的数据,我们需要把这一数据用于传输或者是保存到文件中,以便下一次程序启动,info就是当前值
1.将数据转换成json字符串。(dump和dumps的用法)
data = json.dumps(info)
print(data)
#输出{"name": "\u5218\u5904\u7384", "age": 22, "job": "student"}
现在就把这个数据转换成了字符串,其中的\u是指的Unicode编码
现在只是简单的把他转换成了字符串,那我们要将其保存到文件怎么做呢
data = json.dumps(info)
print(data)
with open('test1.txt','w') as f:
s = json.dumps(info)
f.write(s)
这样我们就把这个编码成json字符串的数据保存到test1.txt的文件中去了
这里有个简单的将以下两句代码合成一句代码,效果相同:
s = json.dumps(info)
f.write(s)
等同于:
json.dump(info,f)
这样方便简单。就不用将info转换成s,再把s写入到文件了
2.将json字符串或者文件中的json字符串转换成Python的代码数据。(load和loads的用法)
data = json.dumps(info)
info2 = json.loads(data)
print(info2)
#输出{'name': '刘处玄', 'age': 22, 'job': 'student'}
其中data就是json字符串,loads也就是从json字符串中加载数据保存成Python的一个数据类型(这里是字典)with open('test1.txt','r') as f:
s = f.read()
info2 = json.loads(s)
print(info2)
#输出{'name': '刘处玄', 'age': 22, 'job': 'student'}
这里实现了从文件中加载json字符串,然后再将json字符串保存成Python数据类型
同样,我们可以用load来简化从文件中加载,效果完全相同
with open('test1.txt','r') as f:
info2 = json.load(f)
print(info2)
python 原始类型向 json 类型的转化对照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |