序列化 pickle shelve json configparser

模塊pickle(皮考)python

dumps(當破死)序列化. 把對象轉化成bytes數據庫

loads(樓死) 反序列化. 吧bytes轉化成對象json

dic = {"jay": "周杰倫", "jj": "大陽哥"}
bs = pickle.dumps(dic)   #序列化
print(bs)

d = pickle.loads(bs)#反序列化
print(d)

dump(當破)序列化,吧對象轉化成bytes 而且寫入文件後端

load(樓的) 反序列化,吧文件中的bytes讀取,轉化成對象session

class Cat:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def catchMouse(self):
        print(self.name, self.age, "抓老鼠")
lst = [Cat("貓1", 10), Cat("貓2", 9), Cat("貓3", 9), Cat("貓4", 9), Cat("貓5", 9)]

f = open("pickle-test", mode="wb")
pickle.dump(lst, f)
# for el in lst:
#     pickle.dump(el, f)

f.flush()
f.close()

f = open("pickle-test", mode="rb")
while 1:
    try:
        c1 = pickle.load(f)
        c1.catchMouse()
    except EOFError:
        break

  

shilve(曬要付)  用open對象

小型數據庫. 操縱的是文件類型的字典. 像操做字典同樣操做文件blog

shelve.open(文件, writeback=True)(Ruai特百科)操做的東西寫回原來的文件ip

import shelve
f = shelve.open('大傑哥',writeback=True)#建立文件
f["jay"] = {'name': "周杰倫", 'age': 38, "hobby": "吃喝拉撒睡"}#像字典同樣操做文件寫入
f['jay']['name'] = '胡辣湯'#像字典同樣修改
print(f['jay']['name'])
print(f['jay'])
f.close()#關閉哦

  

json(傑森)
先後端數據交互的通用的數據格式內存

dumps() 字典轉換成字符串ci

loads() 吧字符轉化成字典

import json  #引入模塊
dic = {'a':'哈哈哈','b':'嘻嘻嘻','c':'嘿嘿嘿'}
s = json.dumps(dic)#若是你的key或者value超出了ascii範疇。 就會顯示成\uxxxxx
#因此用一下寫法:
s1 = json.dumps(dic,ensure_ascii=False)#幹掉ascii碼
print(repr(s1),type(s1))#字符串,能夠用repr()來看

dic1 = json.loads(s)#把字符串解析成 字典
print(dic1,type(dic1))

 寫入文件,

'''
寫入的時候
1. 循環
2. 用dumps吧字典轉化成字符串
而後手工在後面加入一個\n
3. 寫出
'''
import json
f = open('wenjian_json',mode='w',encoding='UTF-8')
lst = [{'a':"胡辣湯"},{'b':'滋滋冒油的大豬蹄子'},{'c':'蓋澆飯'},{'d':'法國大蝸牛'}]
for el in lst:
    s = json.dumps(el,ensure_ascii=False)+'\n'
    f.write(s)
f.flush()
f.close()
'''
讀取的時候
1. for line in f:
2. strip()去掉空格
3. loads()變成字典
'''
f = open('wenjian_json',mode='r',encoding='UTF-8')
for line in f:
    line = line.strip()
    dic = json.loads(line)
    print(dic)

configparser  (肯分哥怕色兒)

處理配置文件的

把配置文件做爲一個大字典來處理就好了

寫入

import configparser
conf = configparser.ConfigParser()
conf['DEFAULT'] = {
    'session-time-out':30,
    'user-alive':60,
    'connect-alive':10
}

conf['201-DB'] = {
    'ip':'192.168.16.201',
    'port':3306,
    'name':'alex',
    'password':'123'
}

conf['202-DB'] = {
    'ip':'192.168.16.202',
    'port':3306,
    'name':'alex',
    'password':'123'
}
conf['203-DB'] = {
    'ip':'192.168.16.203',
    'port':3306,
    'name':'alex',
    'password':'123'
}
f = open('db.ini',mode='w')#建立文件寫進入
conf.write(f)# 就這麼玩,把文件扔進去,寫到這個文件裏

 增刪改查:

conf = configparser.ConfigParser()
conf.read('db.ini')#讀取出來
#修改:
conf['201-DB']['id'] = 'alex'#這只是內存上的改,
conf.write(open('db.ini',mode='w'))#把在內存裏的放入文件

#刪除
del conf['201-DB']['id']
conf.write(open('db.ini',mode='w'))

#新增
conf.set('201-DB','id','192.168.199')
conf.write(open('db.ini',mode='w'))
相關文章
相關標籤/搜索