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"])
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)#打印生成的格式