python的json,pickle,shelve模块
1 import json
import json
# json内部没有单引号,全部转为双引号,最外层用单引号封装成字符串
dic={'name':'alex'}#---->{"name":"alex"}----->'{"name":"alex"}'
i=8 #---->'8'
s='hello' #---->"hello"------>'"hello"'
l=[11,22] #---->"[11,22]"
f=open("new_hello","w")
# dumps 方式 得单独写入
dic_str=(dic)
(dic_str)
#dump 方式不用单独写入
(dic,f)
f_read=open("new_hello","r")
#loads 方式得先读出数据
data=(f_read.read())
#load 方式直接可以一步读出
data=(f)
12 # 总结:
13 # loads()与load 区别:load简单但只能用于文件,loads稍微复杂但应用广
#注意:json不必非要先dumps后loads
import json
with open("Json_test","r") as f:
data=()
data=(data)
print(data["name"])
#----------------------pickle模块-------
import pickle
dic = {'name': 'alvin', 'age': 23, 'sex': 'male'}
print(type(dic)) # <class 'dict'>
j = (dic)
print(type(j)) # <class 'bytes'>
f = open('序列化对象_pickle', 'wb') # 注意是w是写入str,wb是写入bytes,j是'bytes'
(j) # -------------------等价于(dic,f)
()
# # -------------------------反序列化
import pickle
f = open('序列化对象_pickle', 'rb')
data = (()) # 等价于data=(f)
#
print(data['age'])
# # -------------------------shelve模块---------
import shelve
#
f = (r'shelve1') # 目的:将一个字典放入文本 f={}
#
f['stu1_info']={'name':'alex','age':'18'}
f['stu2_info']={'name':'alvin','age':'20'}
f['school_info']={'website':'','city':'beijing'}
()
print(('stu1_info')['age'])