data = { ‘roles‘:[ {‘role‘:‘monster‘,‘type‘:‘pig‘,‘life‘:50}, {‘role‘:‘hero‘,‘type‘:‘关羽‘,‘life‘:80}, ]}#将数据写入game_status文件#f = open("game_status","w")#f.write(str(data))#将数据从game_status文件读出来f = open("game_status","r")d = f.read()d = eval(d)print(d[‘roles‘])#把内存数据转成字符,叫序列化#把字符转成内存数据,叫反序列化
常用模块学习—序列化json模块详解
将数据通过特殊的形式转换为只有python语言认识的字符串
)将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
)将数据通过特殊的形式转换为所有程序语言都认识的字符串
)将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
)import json#1、data = { ‘roles‘:[ {‘role‘:‘monster‘,‘type‘:‘pig‘,‘life‘:50}, {‘role‘:‘hero‘,‘type‘:‘关羽‘,‘life‘:80}, ] }#d = json.dumps(data) #dumps里存一个值#print(d,type(d))f = open("test.json","w") #json格式的文件,以json为拓展名json.dump(data,f) #转入字符并写入文件。 #dump里存两个值#2、data = { ‘roles‘:[ {‘role‘:‘monster‘,‘type‘:‘pig‘,‘life‘:50}, {‘role‘:‘hero‘,‘type‘:‘关羽‘,‘life‘:80}, ] }d = json.dumps(data) #仅转成字符串d2 = json.loads(d)print(d2[‘roles‘]) #结果为:[{‘role‘: ‘monster‘, ‘type‘: ‘pig‘, ‘life‘: 50}, {‘role‘: ‘hero‘, ‘type‘: ‘关羽‘, ‘life‘: 80}]#3、从文件中加载回来# data = {# ‘roles‘:[# {‘role‘:‘monster‘,‘type‘:‘pig‘,‘life‘:50},# {‘role‘:‘hero‘,‘type‘:‘关羽‘,‘life‘:80},# ]# }f = open("test.json","r")data = json.load(f)print(data[‘roles‘]) #结果为:[{‘role‘: ‘monster‘, ‘type‘: ‘pig‘, ‘life‘: 50}, {‘role‘: ‘hero‘, ‘type‘: ‘关羽‘, ‘life‘: 80}]f.close()#只是把数据类型转成字符串存到内存里的意义?#json.dumps json.loads#1、把你的内存数据 通过网络 共享给远程其他人(硬盘或网络传输时只能接受bytes )#2、定义了不同编程语言之间的交互规则 #纯文本 缺点:不能共享复杂的数据类型 #xml 缺点:占的空间大 #json 优点:简单,占的空间小,可读性好