json模塊、pickle模塊(序列化)shelve模塊、xml模塊

json模塊:node

json:與任何語言之間均可以進行信息交換(字符串的轉換)python

   通過json轉換,全部類型都可先轉換爲雙引號形式 再轉換爲strjson

例如:文件的讀寫:less

1 #寫文件:
2 import json
3 f = open("demo.txt","w")
4 dic = {"name":"g_l"}
5 dic_str = json.dumps(dic)
6 f.write(dic_str)
7 print(type(dic_str))
8 print(dic_str)

1
#讀文件: 2 import json 3 f = open("demo.txt","r") 4 f_read = f.read() 5 f_read = json.loads(f_read) 6 print(type(f_read)) 7 print(type(f_read))

僅僅針對文件操做的 load和dump:【dic f 參考上面兩個代碼】ide

  json.dump(dic,f)函數

  json.load(f)spa

packle模塊:(支持函數、類等)code

 序列化:把變量(對象)從內存中變成可存儲或者傳輸的過程稱爲序列化xml

 1 import pickle
 2 dic = {"name":"alex","name":"g_l","age":18}
 3 # print(type(dic))
 4 j = pickle.dumps(dic)
 5 print(type(j))#字節類型
 6 print(j)
 7 f = open("序列化對象_pickle",'wb')
 8 pickle.dump(dic,f)#f.write()#不可讀文件
 9 f.close()
10 # #---反序列化:
11 import pickle
12 f = open("序列化對象_pickle",'rb')
13 date = pickle.loads(f.read())#---->date = pickle.load(f)
14 print(type(date["age"]))
15 print(date["age"])
View Code

 shelve模塊:對象

  相對於pickle模塊更簡單,只有一個open函數;

  返回相似於字典的對象;

  可讀可寫;

  key必須爲字符串;

  value是python可支持的全部類型

xml模塊:

i.tag--->屬性

i.attrib--->鍵值對(屬性)

i.text--->標籤下的內容

 1 import xml.etree.ElementTree as ET
 2 tree = ET.parse("xml_lesson")
 3 root = tree.getroot()
 4 print(root)
 5 print(root.tag)
 6 for i in root:
 7     print(i)
 8     print(i.tag)
 9     print(i.attrib)
10     for sx in i:
11         print(i)
12         print(sx.tag)#打印屬性
13         print(sx.attrib)
14         print(sx.text)
15 # #遍歷節點:
16 for node in root.iter('year'):
17     print(node.tag,node.text)
18 
19 #修改信息:
20 for node in root.iter('year'):
21     new_year = int(node.text)+1
22     node.text=str(new_year)
23     node.set("updata","yes")
24 tree.write('xml_xg.xml')
25 
26 #刪除信息:
27 for country in root.findall('country'):
28     gdp=int(country.find('gdp').text)
29     if gdp<5000:
30         root.remove(country)
31 tree.write('xml_xg.xml')
32 
33 #xml數據的建立:
34 import xml.etree.ElementTree as XET
35 new_xml = ET.Element("namelist")#根節點
36 """
37 建立 <namelist>
38     </namelist>標籤
39 """
40 name = XET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})
41 age = XET.SubElement(name,"age",attrib={"checked":"no"})
42 sex = XET.SubElement(name,"sex")
43 """
44     <namelist>
45         <name enrolled="yes"></name>
46         <age checked="no"></age>
47         <sex></sex>
48     </namelist>
49 """
50 sex.text='18'
51 name2 = XET.SubElement(new_xml,"name",attrib={"enrolled":"no"})
52 age = XET.SubElement(name2,"age")
53 age.text = '8'
54 
55 et = ET.ElementTree(new_xml)#生成文檔對象
56 et.write("test.xml",encoding="utf-8",xml_declaration=True)
57 
58 XET.dump(new_xml)#打印生成的格式
應用舉例
相關文章
相關標籤/搜索