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)