json、pickle、xml、shelve模块

1、json.dump/json.dumps 将数据转换成json
v = json.dump(variant) //将variant中单引号变成双引号,再将变量转字符串
eg:
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
json.dump(numbers, f_obj) //同 f_obj.write(json.dumps(numbers))
 
2、json.load/json.loads 读数据,读取的内容必须符合json规范
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj) //同 numbers=json.loads(f_obj.read())
 
3、pickle.dump/pickle.dumps 将数据转换成 bytes
 
4、pickle.load/pickle.loads 读数据,读取的内容必须是bytes
 
5、shelve模块
import shelve
f = shelve.open(r"testFile1")
f["name"] = "chenhaiquan"
f["name1"] = "chenhaiquan1"
f.close()
 
ff = shelve.open(r"testFile1")
print(ff["name"])
print(ff["name1"])
ff.close()
 
 
6、xml模块
import xml.etree.ElementTree as ET
 
# 解析xml文件
tree = ET.parse("testFile.xml")
root = tree.getroot()
print(root.tag)
 
# 遍历xml文档
for child in root:
print(child.tag, child.attrib)
for i in child:
print(i.tag, i.text)
 
# 只遍历ETD节点
for node in root.iter('ETD'):
print(type(node.tag) ,node.tag, node.text)
 
# 删除
for child in root:
isChildCompelete = False
while not isChildCompelete:
isChildCompelete = True
for i in child:
if i.tag != "ETA" and i.tag != "ETD":
isChildCompelete = False
child.remove(i)
tree.write("testFile1.xml")
 
# 修改
for node in root.iter("ETD"):
node.text = "去你家里吧"
node.set("update", "true")
 
tree.write("testFile1.xml")
 
# 新增
# <?xml version='1.0' encoding='utf-8'?>
# <name.list>
# <name enrolled="yes">
# <age enrolled="no" />
# <sex>19</sex>
# </name>
# <name enrolled="no">
# <age />
# </name>
# </name.list>
new_xml = ET.Element("name.list")
name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})
age = ET.SubElement(name, "age", attrib={"enrolled": "no"})
sex = ET.SubElement(name, "sex")
sex.text = "23"
 
name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
age = ET.SubElement(name2, "age")
sex.text = "19"
 
et = ET.ElementTree(new_xml)
et.write("testFile1.xml", encoding="utf-8", xml_declaration=True)
 
 
 

猜你喜欢

转载自www.cnblogs.com/chqworkhome/p/10954739.html