python不同模块间传递数据_Python模块-数据传送模块
json
數據交換,可以跨語言交換,比如php、java等,默認使用規范為雙引號。
json類型
Python類型
{}
dict
[]
list
"str"
str
123.45
int或float
true/flase
True/Flase
null
None
json.dumps()
序列號操作,轉換為json格式字符串
普通字典轉換為字符串做法
# -*- coding: -*-
dic = {'a':"1"}
a = str(dic) #數據轉換
print("原來數據類型:",type(dic))
print("轉換后數據類型:",type(a))
原來數據類型:
轉換后數據類型:
普通字典樣式的字符串轉字典示例做法
# -*- coding: -*-
A = "{'a':1}"
B = eval(A) #數據轉換
print("原來數據類型:",type(A))
print("轉換后數據類型:",type(B))
json 字典轉換字符串
字符串單引號變雙引號,雙引號字符串保持不變
import json
dic = {'name':1}
print("轉換結果:",json.dumps(dic))
print("轉換結果類型:",type(json.dumps(dic)))
轉換結果: {"name": 1}
轉換結果類型:
json.loads()
反序列化操作,將json格式字符串轉換為原來的類型
import json
dic = {'name':1}
a = json.dumps(dic)
#以上為字典轉換為json格式的字符串
print("轉換結果:",json.loads(a))
print("轉換結果類型:",type(json.loads(a)))
轉換結果: {'name': 1}
轉換結果類型:
Pickle模塊
json對比區別
pickle寫入內容不可讀,pickle支持的數據類型更多
引用
import pickle
方法
轉換為字符串類型
pickle.dump
pickle.dumps
轉換為原來類型
pickle.load
pickle.loads
shelve模塊
shelves寫入內容不可讀
序列化操作存儲
import shelve
a = shelve.open("test")
a["name"] = {"xiaowang"}
自動生成的三個文件
test.bak
test.dat
test.dir
反序列化操作讀取
import shelve
a = shelve.open("test")
a["name"] = {"xiaowang"}
print(a.get("name"))
{'xiaowang'}
xml模塊,ElementTree解析
測試文件
1
2
3
4
5
標簽名稱
文檔樹的根節點標簽名稱
import xml.etree.ElementTree as ET
tree = ET.parse("XMLConfig.xml") #文檔樹內存地址
tree_root = tree.getroot() #文檔樹根的內存地址
print(tree_root.tag) #文檔樹根的標簽
root
標簽屬性
文檔樹中各個屬性以字典鍵值對形式輸出
# -*- coding: utf8 -*-
import xml.etree.ElementTree as ET
tree = ET.parse("XMLConfig.xml") #文檔樹內存地址
tree_root = tree.getroot() #文檔樹根的內存地址
for i in tree_root:
print(i.attrib) #文檔樹中的分類列表
{'dec': 'list_1'}
{'dec': 'list_2'}
{'dec': 'list_3'}
{'dec': 'list_4'}
{'dec': 'list_5'}
標簽內容
# -*- coding: utf8 -*-
import xml.etree.ElementTree as ET
tree = ET.parse("XMLConfig.xml") #文檔樹內存地址
tree_root = tree.getroot() #文檔樹根的內存地址
for i in tree_root: #遍歷文檔樹
for j in i: #遍歷文檔樹列表
print(j.text) #文檔樹遍歷文檔列表中標簽內容
1
None
None
2
None
None
3
4
None
5
None
None
修改內容
# -*- coding: utf8 -*-
import xml.etree.ElementTree as ET
tree = ET.parse("XMLConfig.xml") #文檔樹內存地址
tree_root = tree.getroot() #文檔樹根的內存地址
for i in tree_root.iter("test"): #遍歷文檔樹
i.set("test", "new_txt") #文檔樹遍歷文檔列表中標簽內容 修改
tree.write("XMLConfig2.xml") #保存修改后的文件
修改后
1
2
3
4
5
刪除內容
import xml.etree.ElementTree as ET
tree = ET.parse("XMLConfig.xml") #文檔樹內存地址
tree_root = tree.getroot() #文檔樹根的內存地址
for i in tree_root.findall("GV"): #遍歷文檔樹第一層
rank = int(i.find("test").text) #第二層查找標簽并賦值
if rank > 4: #第二層條件判斷
tree_root.remove(i) #不符合條件刪除操作
tree.write("XMLConfig2.xml") #保存修改后的文件
刪除后
1
2
3
4
生成xml文件
# -*- coding: utf8 -*-
import xml.etree.ElementTree as ET
new_xml = ET.Element("xml_list") #創建文檔樹根節點
name = ET.SubElement(new_xml,"name",attrib={"test1":"1"}) #在根節點中插入子元素
name = ET.SubElement(new_xml,"name",attrib={"test2":"2"}) #在根節點中插入子元素
et = ET.ElementTree(new_xml) #生成文檔對象
ET.dump(new_xml) #打印生成的格式
et.write("test.xml",encoding="utf8",xml_declaration=True) #生成文件
打印出的內容
生成的文件內容
總結
以上是生活随笔為你收集整理的python不同模块间传递数据_Python模块-数据传送模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iconnect是什么软件
- 下一篇: 认识python编程环境_认识Pytho