用解析器解析出的數據后,可以通過TXT、JSON、CSV等文件形式進行存儲;
1、TXT形式此處略;
2、JSON文件存儲
json即js 對象標記,是一種數據格式;
json格式:
json對象:{"username":"ADMIN","pwd":"xxxx","address":"北京"}
json數組:[{"name":"smith","age":"23"},{"name":"jones","age":"23"},{"name":"zye","age":"23"}]
例如:
1 import json 2 str=''' 3 [{"name":"小明","age":"23"},{"name":"jones","age":"23"},{"name":"zye","age":"23"}] 4 ''' 5 print(type(str)) 6 obj=json.loads(str)#將json格式字符串轉為json 7 print(type(obj)) 8 #取值 9 print(obj[0]['name']) 10 print(obj[1]['age']) 11 print(obj[1].get('name')) 12 print(obj[1].get('address','北京'))#即如果該字段為None或者該key不存在時,會采用默認值;即第二個參數為默認值 13 14 #加載一個json文件 15 with open("read.json",'r') as file: 16 s=file.read() 17 j=json.loads(s) 18 print(j[0]['name']) 19 20 #輸出json 21 jsonArray=[{'name':'sd'},{'name':'ss'}] 22 with open('test.json','w') as file: 23 file.write(json.dumps(jsonArray)) 24 25 #或者: 26 jsonObj=json.loads(str) 27 with open('test.json','w') as file: 28 file.write(json.dumps(jsonObj)) 29 30 #或者:如果有中文,且想格式化 31 jsonObj=json.loads(str) 32 with open('test.json','w',encoding='utf-8') as file: 33 file.write(json.dumps(jsonObj,indent=2,ensure_ascii=False))#格式化了json,
寫入test.json后格式:
[
{
"name": "小明",
"age": "23"
},
{
"name": "jones",
"age": "23"
},
{
"name": "zye",
"age": "23"
}
]
2、CSV文件操作
CSV通過分隔符進行風格以純文本形式存儲表格數據;該文件是一個字符序列,可以任意數目組成的記錄,記錄之間通過換行符分離;
將數據寫入csv文件
1 import csv 2 with open ('data .csv', 'w',newline='') as csvfile:# newline=''設置換行,否則會出現空行 3 writer = csv.writer(csvfile,delimiter=':')#delimiter=':' 設置:號隔開 4 writer.writerow (['id', 'ame','age']) 5 writer. writerow( ['10001', 'Mike',20]) 6 writer .writerow (['10002','Bob',22]) 7 8 writer.writerows([['1003','JEL',23],['1004','JESR',34],['1005','ESR',34]]) 9 csvfile.close() 10 11 #字典形式寫入 12 with open('abc.csv','w',newline='',encoding='utf-8 ') as myfile:#設置w為a則此時會像文檔中追加內容 13 fieldnames=['id','name','addr'] 14 writer=csv.DictWriter(myfile,delimiter='!',fieldnames=fieldnames) 15 writer.writeheader() 16 writer.writerow({'id':'1001','name':'JONES','addr':'北京'}) 17 writer.writerow({'id': '1002', 'name': 'smith', 'addr': '北京'}) 18 writer.writerow({'id': '1003', 'name': 'jenes', 'addr': '北京'})
讀取csv文件:
1 #讀取數據 2 with open('abc.csv','r',encoding='utf-8') as myfile: 3 csvReader=csv.reader(myfile) 4 for r in csvReader: 5 print(r)
