数据相关的模块

1.什么叫做序列化,反序列化?为什么要这样做?

把对象处理成方便传输的格式叫序列化。反之叫反序列化。为了数据的传输和存储

2.主要有哪几种序列化的方案?有什么区别?怎么用?

主要有pickle, shelve, json。pickle:把python中任意数据转成字符串的bytes,shelve: 把数据存储在硬盘,可以像字典一样操作,这个过程叫持久化,json: 实现前后端交互的语言,json全称javascript object notation。
pickle: dumps(), loads(),dump(c,f)--把c对象写到f文件句柄里,要close()。shelve: shelve.open(file,writeback=True),此时对字典的操作将写回硬盘,否则只在内存层面的修改,json: dumps(c,ensure_ascii=False),loads(), ensure_ascii=False指不限定用ascii码,可显示中文。

当使用dump()或者load()对文件操作时,json可写入多个json,但是读取只能读取一行内容。如果想读取全部内容,可先把多个json数据用一个列表存放,读取时候对列表循环拿到全部数据。

json虽然可跨语言,但是只能支持intstrlist upledict。

3. configparser模块在哪里运用?怎么拿到值?怎么用configparser模块做一个数据库的配置文件ini?

主要用于修改配置文档信息ini和测试环境,像字典一样拿值。‘DEAFAULT’里的值是下面的值共有的,如数据库需要转换IP时,更换方便

import configparser
config = configparser.ConfigParser()
config['DEFAULT'] = {
  "sleep": 1000,
  "session-time-out": 30,
  "user-alive": 999999
}  
config['TEST-DB'] = {
  "db_ip": "192.168.17.189",
  "port": "3306",
  "u_name": "root",
  "u_pwd": "123456"
}

config['168-DB'] = {
  "db_ip": "152.163.18.168",
  "port": "3306",
  "u_name": "root",
  "u_pwd": "123456"
}

原文地址:https://www.cnblogs.com/jackfree/p/10064704.html