设为首页 加入收藏

TOP

序列化,pickle,shelve,json,configparser(二)
2019-06-12 00:06:08 】 浏览:82
Tags:序列化 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")#
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python 之 函数 装饰器 下一篇接口类和抽象类

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目