模块

序列化

一. 储存数据或者网络传输对我们的对象进行处理,处理成方便存储和传输的数据格式的过程叫做序列化.

二. 在python中存在三种序列化方案.

1.    pickle.将任意数据类型转化成bytes并写入文件,也可以把文件中写好的bytes转换回python的数据,这个过程成为反序列化.

 

import pickle

class cat:

     def __init__(self,**,**):

         pass

c = cat(**,**)

bs = pickle.dumps(c)  #转化成bytes

cc = pickle.loads(bs)  #转换回来

多个对象写入文件

      lst = [Cat("jerry",19),Cat("jerry",20),Cat("jerry",21)]

f = open("cat",mode="wb")  #打开文件

pickle.dump(lst,f)          #把多个对象写入文件

f = open("cat",mode="rb")

ll = pickle.load(f)          #从文件中读取

 

2.    Shelve.作为一种小型数据库使用. shelve提供python的持久化操作

 

3.    Json.将python中常见的字典,列表转化成字符串,是目前前后端数据交互使用频率最高的一种数据格式.

      import json

dic = {"a": "女王", "b": "萝莉", "c": "⼩清新"}

s = json.dumps(dic,ensure_ascii=False)  #处理中文

print(s)

import json

s = '{"a": "⼥王", "b": "萝莉", "c": "⼩清新"}'

dic = json.loads(s)

print(dic)

大量数据处理

import json

lst = [{"a": 1}, {"b": 2}, {"c": 3}]

# 写⼊

f = open("test.json", mode="w", encoding="utf-8")

for el in lst:

    s = json.dumps(el, ensure_ascii=True) + "\n"  

    f.write(s)

f.close()

 # 读取

f = open("test.json", mode="r", encoding="utf-8")

for line in f:

    dic = json.loads(line.strip())

    print(dic)

f.close()

posted @ 2018-10-09 21:04  哇!好难  阅读(90)  评论(0编辑  收藏  举报