【python】資料儲存
阿新 • • 發佈:2018-12-11
python 資料儲存
資料儲存的方式
對於python的檔案儲存具有很多形式,主要的有TXT,JSON,CSV格式,除此之外還可以儲存到資料庫中
思路分析
1:txt儲存 目的:儲存知乎上面的"發現"頁面的“熱門話題”部分 使用requests獲取網頁原始碼------>然後使用pyquery解析庫進行解析 a: 獲取原始碼 b: 使用pyquery解析 <div class="explore-tab" id="js-explore-tab"> <a class="zg-anchor-hidden" name="daily-hot"></a> <a class="zg-anchor-hidden" name="monthly-hot"></a> <ul class="tab-navs clearfix"> <li class="tab-nav"><a class="anchor" href="#daily-hot" data-za-c="explore" data-za-a="visit_explore_daily_trendings" data-za-l="explore_daily_trendings">今日最熱</a></li> <li class="tab-nav"><a class="anchor" href="#monthly-hot" data-za-c="explore" data-za-a="visit_explore_monthly_trendings" data-za-l="explore_monthly_trendings">本月最熱</a></li> </ul> question = item.find('h2').text()# 問題 author = item.find('author-link-line').text()# 作者 answer = pq(item.find('.content').html()).text()# 答案 c:問題,回答者,答案全文 d:使用open()開啟一個檔案文字,獲取一個檔案操作物件file, e:write()將提供的內容寫入檔案, f: 呼叫close()方法關閉 補充說明: 開啟方式 1:r 只讀方式 2:rb 二進位制只讀方式開啟一個檔案 3:r+ 讀寫方式開啟一個檔案 4:rb+ 二進位制讀寫方式開啟一個檔案 5:w 寫入方式開啟一個檔案 6:wb 二進位制寫入方式 7:w+ 讀寫方式 8:wb+ 二進位制讀寫格式 9:a 追加方式開啟一個檔案 10:ab 二進位制追加方式 11:a+ 讀寫方式開啟 12:ab+ 二進位制追加方式 2: json資料儲存分析 json進行資料儲存的時候:以陣列和物件進行 [{ }, { }, '''''' ] load(),dumps()將json檔案字元互相換轉化為json物件 indent=2 縮排兩個字元 str= "json形式的字串" data = json.load(str) print(data) print(type(data)) 3:csv 一種逗號分隔值或者字元分割值 可將資料寫入到excel中 write= csv.writer(csvfile)# 初始化寫入物件 write.writerow(['id','name','age']) 4:資料庫儲存 關係型資料庫儲存,非關係型資料庫儲存 以mysql為例
1:TXT格式
""" author:jjk datetime:2018/9/24 coding:utf-8 project name:Pycharm_workstation Program function: txt儲存 """ import requests from pyquery import PyQuery as pq # 爬取的網址 url = 'https://www.zhihu.com/explore' # 響應頭 headers = { 'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Mobile Safari/537.36' } html = requests.get(url,headers=headers).text doc = pq(html) # print(doc)# 獲取網頁原始碼 # 當前節點class=explore-tab,然後在當前節點explore-tab下的當前節點:fee-item的內容,使用items()遍歷 items = doc('.explore-tab .feed-item').items() for item in items: question = item.find('h2').text()# 問題 author = item.find('author-link-line').text()# 作者 answer = pq(item.find('.content').html()).text()# 答案 with open('explore.txt','a',encoding='utf-8') as file: file.write('\n'.join([question, author, answer])) # 換行使用.join()進行連線 file.write('\n' + '=' * 5 + '\n') # 空出5行 file.close()
最終以txt格式進行儲存
2:JSON格式
""" author:jjk datetime:2018/9/24 coding:utf-8 project name:Pycharm_workstation Program function: json資料儲存 """ import json data = [{ 'name':'賈繼康', 'gender':'male', 'birthder':'1992-2-2' }] with open('data.json', 'w') as file: file.write(json.dumps(data,indent=2,ensure_ascii=False))# 縮排兩個字元
3:csv格式
"""
author:jjk
datetime:2018/9/24
coding:utf-8
project name:Pycharm_workstation
Program function: csv資料儲存
"""
import csv
with open('data.csv','r',encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
4:資料庫
說明: 這裡只是針對關係型資料庫mysql進行學習了一下
"""
author:jjk
datetime:2018/9/24
coding:utf-8
project name:Pycharm_workstation
Program function: mysql 資料庫
"""
import pymysql
db = pymysql.connect(host='localhost',user='root',password='123456',port=3306)# 宣告一個連線物件,進行資料庫連線
cursor= db.cursor()# 獲取mysql的操作遊標,利用遊標執行SQL語句
cursor.execute('SELECT VERSION()')# 執行查詢資料庫版本號
data = cursor.fetchone()# fetchone()方法獲得第一條數
print('Database version',data)
cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8") # 建立資料庫:spiders
db.close()#關閉
這裡只是實現了連線資料庫,進行建立一個自定義的資料庫,下一步就是進行插入語句的操作