序列化,pickle,shelve,json,configparser(二)
uot;c":"lixiang"}
5 s=json.dumps(dic,ensure_ascii=False)#干掉ascii码
6 print(s,type(s))
7 print(repr(s),type(s))#repr打印出字符串带引号
8
9 # #把字符串转成字典
10 dic1 = json.loads(s)
11 print(dic1,type(dic1))
将转换之后的字符串写入到文件中,从文件中读取字符串再装换 dump,load
#把字典转成字符串写入文件中
s = open("waimai.json","w",encoding="utf-8")
json.dump(dic,s,ensure_ascii=False)
s.close()
文件中读,并将字符串转换
w = open("waimai.json","r",encoding="utf-8")
s = json.load(w)
把文件读出,json读数据的时候,要一行一行的读 通过dump写的时候,是把多个数据写入同一行 所以,不提倡使用dump,load写和读
1 #写入的时候
2 #循环
3 #用dumps把字典转换成字符串,然后在后面加换行符/n
4 #写入
5
6 #字典
7 dic = [{"shuai":"aoli"},{"deng":"xiangxinag","haung":"zishi"},{"zhang":"zifneg"}]
8 #打开文件
9 f = open("p.json","w",encoding="utf-8")
10 for i in dic:
11 s = json.dumps(i,ensure_ascii=False) + '\n'
12 #json.dump(s,f,ensure_ascii=False)
13 f.write(s)
14 f.close()
15
16
17 #读取的时候
18 #for line in f:
19 #strip() 去掉每一行的空白/n
20 #loads()变成字典
21
22 f = open("p.json","r",encoding="utf-8")
23 for line in f:
24 line = line.strip()
25 s=json.loads(line)
26 print(s)
27 f.close()
5,configparser
configparser 处理配置文件,把配置文件作为一个大的字典来处理,能进行创建,增删改查
创建一个配置文件
1 import configparser
2
3
4 #写配置到文件
5 conf = configparser.ConfigParser()
6 conf["DEFAULT"] = {
7 "session-time-out":30,
8 "user-alive":60,
9 "connect-alive":10
10 }
11
12 conf["189-DB"] = {
13 "ip":"192.168.2.189",
14 "port":3306,
15 "uname":"root",
16 "password":"root"
17 }
18 conf["186-DB"] = {
19 "ip":"192.168.2.186",
20 "port":3306,
21 "uname":"root",
22 "password":"root"
23 }
24 f = open("db.ini",mode="w")
25 conf.write(f)
26
27
28
29
30 运行结果
31 db.ini
32
33
34 [DEFAULT]
35 session-time-out = 30
36 user-alive = 60
37 connect-alive = 10
38
39 [189-DB]
40 ip = 192.168.2.189
41 port = 3306
42 uname = shuai
43 password = root
44
45 [186-DB]
46 ip = 192.168.2.186
47 port = 3306
48 uname = root
49 password = root
前面说。它像一个字典一样,就能用字典类似的方式来操作
1 #读取内容
2 conf= configparser.ConfigParser()
3 conf.read("db.ini")
4 #读取章节
5 print(conf.sections())
6 #章节可以向字典一样操作
7 print(conf["189-DB"]["ip"])
8
9 #遍历章节
10 for key in conf["189-DB"]:
11 print(key)
12
13 for k,v in conf["189-DB"].items():
14 print(k,v)
增删改都需要将文件从写,最开始读文件(conf.read())的时候,是将全部读到内存中去
1 #增删改,改完之后在写回文件
2 conf= configparser.ConfigParser()
3 conf.read("db.ini")#在这里,是把db,ini文件全读到内存中去了
4 conf["189-DB"]["uname"] = "shuai" #改
5 #del conf["189-DB"]["password"]#删除
6 conf.set("189-DB","max-connect","1024")#189-DB章节中增加一个max-connect属性值为1024
7 conf.add_section("130-DB")#增 |
|