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>
View Code

 

##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')
View Code

 

posted @ 2018-01-17 01:19  Alos403  阅读(212)  评论(0编辑  收藏  举报