日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python数据储存_五种使用python储存数据的方式

發(fā)布時(shí)間:2025/3/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据储存_五种使用python储存数据的方式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在python編程開(kāi)發(fā)中,總是不可避免的遇到數(shù)據(jù)儲(chǔ)存的問(wèn)題,下面就介紹python與幾種數(shù)據(jù)儲(chǔ)存方式交互的方法。

json文件

json是一種輕量級(jí)的數(shù)據(jù)交換格式。采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。層次結(jié)構(gòu)簡(jiǎn)潔而清晰,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

最主要的是,通過(guò)json這個(gè)包可以很方便的解決無(wú)論是py2還是py3中的編碼問(wèn)題,json的內(nèi)容結(jié)構(gòu)也近似于python中的字典和列表,操作起來(lái)特別方便。

[python]view plain copy

import json

# 此時(shí)有一個(gè)json文件,結(jié)構(gòu)大概是 [{},{},{}...] 打開(kāi)這個(gè)文件

# 使用json load讀取文件內(nèi)容,然后可以直接用列表或者字典的方式去操作con這個(gè)變量

con = json.loads(content)

# 那么如何儲(chǔ)存為json文件呢?

# 使用dumps將列表序列化并且轉(zhuǎn)換為unicode編碼,儲(chǔ)存的時(shí)候,就可以存你最喜歡的utf-8了

lis = [{},{},{}...]

data = json.dumps(lis, ensure_ascii=False)

f.write(data.encode('utf-8'))

csv文件

轉(zhuǎn)換為csv文件后,我們就可以直接用excel打開(kāi)拉圖表了

[python]view plain copy

import csv

# 打開(kāi)文件

with open(filename, 'w') as f:

writer = csv.writer(f) # 構(gòu)造寫(xiě)入器

data = ('1','2','3') # 填寫(xiě)三格

data = ('','','3') # 填寫(xiě)一格,前兩格空起來(lái)

data = ('1','') # 填寫(xiě)第一格,后面無(wú)論多少格都空起來(lái)

writer.writerow(data) # writerow每執(zhí)行一次,寫(xiě)入一行 注意其中的參數(shù)data需要是一個(gè)元組

# 注意,在windows中,打開(kāi)文件需要使用 with open(filename, 'w', newline='') as f: # 否則每寫(xiě)一行都會(huì)多一個(gè)空行 # 原因是 windows中換行符號(hào)是 \n\r ,csv庫(kù)中并沒(méi)有做特別的處理,所以會(huì)產(chǎn)生空行

MySQL數(shù)據(jù)庫(kù)

應(yīng)該是最常用的操作了,使用mysql的優(yōu)點(diǎn)是看數(shù)據(jù)真的很直觀(如果使用GUI程序的話)

[python]view plain copy

導(dǎo)入包略微不一樣

@python3

import pymysql

@python2

import MySQLdb

# 建立連接 注意數(shù)據(jù)庫(kù)寫(xiě)入數(shù)據(jù)時(shí)數(shù)據(jù)的編碼

conn = MySQLdb.connect(host='localhost', port=3306, db='test',

user='root', passwd='', charset='utf8')

# 新建游標(biāo) 游標(biāo)操作sql語(yǔ)句

cur = conn.cursor()

result = cur.execute("insert into students(name) values('Jack')")

result = cur.execute("insert into students(name,age) values(%s,%s)", params)

# sql對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)有改變的時(shí)候,使用commit()提交,否則不生效

conn.commit()

# 返回?cái)?shù)據(jù)到python,使用fetchone和fetchall從內(nèi)存中取數(shù)據(jù),取了一個(gè)清空一個(gè)

cur.execute('select * from students where id between 1 and 5')

result=cur.fetchone()

result=cur.fetchall()

# 最后記得關(guān)閉連接

cur.close()

conn.close()

Redis數(shù)據(jù)庫(kù)

優(yōu)點(diǎn)是方便,速度快,需要注意的是取出的數(shù)據(jù)是二進(jìn)制數(shù)據(jù),一般需要轉(zhuǎn)為字符串再操作。

操作大全: python-redis操作大全

[python]view plain copy

import redis

# 建立連接

client = redis.Redis(host='lcoalhost', port=6379)

# 操作數(shù)據(jù)

client.set('nums', [1,2,3,4,5])

result = client.get('name')

# 使用事務(wù)(避免失敗操作導(dǎo)致數(shù)據(jù)只操作了一半)

pipe = client.pipeline()

pipe.set('name', 'Jack')

pipe.execute()

Mongdb數(shù)據(jù)庫(kù)

優(yōu)點(diǎn)是不在乎數(shù)據(jù)結(jié)構(gòu),需要注意的是取出來(lái)的時(shí)候要寫(xiě)個(gè)腳本整理一下。

[python]view plain copy

import pymongo

# 建立連接 指定數(shù)據(jù)表

client = pymongo.MongoClient('localhost', 27017)

test1_db = client.test1

sheet_stu = db.stu

# 操作數(shù)據(jù)

info =

info_id = stu.insert_one(info).inserted_id

cur_list = [cur for cur in stu.find()]

count = stu.count()

總結(jié)

以上是生活随笔為你收集整理的python数据储存_五种使用python储存数据的方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。