026json和pickle,xml模块
###json和pickle
##json
#dumps()
data = #源数据
data = json.dumps(data)
这时候的data可以写入到文件了
#loads()
data = f.read()
data = json.loads(data)
这样子就可以使用了。
不能对函数和类进行操作
##pickle 使用和json一样,功能多可以保存类和函数
#dumps()
文件需要使用二进制格式的,函数要求文件里面有还有脚本里面有。
#loads()
pickle.dump(func,file)
这样子写就顶了dumps和write
data=pickle.load(file)
这个data就可以使用了。
不可以交叉使用,自己测试过了
##shelve
f=shelve.open('shelve_text')
f['info']={'name':'xia','age':21}
一般使用json和pickle
### xml模块
了解就行了**
通过新建file建立
含有标签,标签属性
##xml的格式如下,就是通过<>节点来区别数据结构的:
<?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country> <country name="Panama"> <rank updated="yes">69</rank> <year>2011</year> <gdppc>13600</gdppc> <neighbor name="Costa Rica" direction="W"/> <neighbor name="Colombia" direction="E"/> </country> </data>
##python中操作xml:
1 import xml.etree.ElementTree as ET 2 3 tree = ET.parse("xmltest.xml") 4 root = tree.getroot() 5 print(root.tag) # 最外层的标签名 6 7 #遍历xml文档 8 for child in root: 9 print(child.tag, child.attrib) # tag是标签,attrib是属性 10 for i in child: 11 print(i.tag,i.text) 12 13 #只遍历year 节点 14 for node in root.iter('year'): 15 print(node.tag,node.text) 16 #--------------------------------------- 17 import xml.etree.ElementTree as ET 18 19 tree = ET.parse("xmltest.xml") 20 root = tree.getroot() 21 22 #修改 23 for node in root.iter('year'): 24 new_year = int(node.text) + 1 25 node.text = str(new_year) 26 node.set("updated","yes") 27 28 tree.write("xmltest.xml") 29 30 31 #删除node 32 for country in root.findall('country'): 33 rank = int(country.find('rank').text) 34 if rank > 50: 35 root.remove(country) 36 37 tree.write('output.xml')