版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CoolScript/article/details/90286767
文章目录
python常用数据存储方法
txt
with open('test.txt','w',encoding='utf8') as f: f.write('sdfasdf'+'\n') json
object = json.loads(jsonstr) : json字符串 转化为 python对象
str = json.dumps(objects,indent=2) :python对象 转化为 json字符串
注意:输出中文要设置ensure_ascii为False,还要注意编码
with open('test.txt','w',encoding='utf8') as f: f.write(json.dumps(objects,indent=2,ensure_ascii=False)) csv
用csv模块写,用pandas.read_csv() 读取很方便
import csv from pandas import read_csv with open('csv.csv', 'w', encoding='utf8') as f: writer = csv.writer(f, delimiter=',') writer.writerow(['id', 'name', 'age']) writer.writerows( (['1', 'bob', '12'], ['2', 'amy', '21']) ) # 读写字典格式 with open('dict.csv', 'w', encoding='utf8') as f: field_headers = ['id', 'name', 'age'] writer = csv.DictWriter(f, fieldnames=field_headers) writer.writeheader() writer.writerow({ 'id': 3, 'name': 'Mike', 'age': 22 }) df = read_csv('csv.csv') print(df) msyql
安装pymysql
pip install PyMySQL To use “sha256_password” or “caching_sha2_password” for authenticate,
you need to install additional dependency:
pip install PyMySQL[rsa] 连接
单实例连接
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='huajian') cursor = db.cursor() 建库建表
cursor.execute(f'create database if not exists {db_name};') cursor.execute(f'use {db_name};') cursor.execute( f'create table if not exists {table_name}(id varchar(20), sex varchar(30),name varchar(20), age int, primary key (id));') 插入
data = { 'id': '465674646', 'name': 'Mike', 'age': 25, 'sex': 'Male' } # ================================================ # insert ignore 使用唯一约束情况下,存在则不插入,保持原来数据 # ================================================= table_name = 'xxxx' keys = ','.join(data.keys()) values = ','.join(map(lambda x: f'"{x}"', data.values())) sql = f'insert ignore into {table_name}({keys}) values({values});' try: cursor.execute(sql) db.commit() except: db.rollback() # ================================================= # insert update 使用唯一约束情况下,存在则替换,更换为新数据 # ================================================= keys = ','.join(data.keys()) values = ','.join(map(lambda x: f'"{x}"', data.values())) update_sql = ','.join([f'{k} = "{v}"' for k, v in data.items()]) sql = f'insert into {table_name}({keys}) values({values}) on duplicate key update {update_sql};' try: cursor.execute(sql) db.commit() except: db.rollback() cursor.close() db.close() 删除
修改
查询
sql = 'select * from xtable;' cursor.execute(sql) res = cursor.fetchall() # res = cursor.fetchone() …… # ======================================================= # 下面是逐条获取 # ======================================================= sql = 'select * from xtabel;' try: cursor.execute(sql) print('Count:',cursor.rowcount) row = cursor.fetchone() print(row) while row: row = cursor.fetchone() print(row) except: print('error') mongodb
安装
pip install --upgrade pymongo 连接
client = pymongo.MongoClient(host='localhost', port=27017) 建库建文档
db = client.test_db collection = db.test_collection 增
collection.insert_one({……}) collection.insert_many({……},{……}) ɾ
collection.remove({……}) 改
# 正常情况:查找,然后修改 # 下面这个,去重插入, collection.update_one({'id': data1['id']}, {'$set': data1}, True) 查
collection.find() collection.find_one() collection.find().count() redis
安装
pip install redis hiredis 连接
连接池不需要管关闭的事情
import redis pool = redis.ConnectionPool(host='localhost', port=6379, db=15, decode_responses=True) r = redis.StrictRedis(connection_pool=pool) 操作
公用方法
| 方法 | 作用 | 例子 |
|---|---|---|
| exists() | 判断是否存在 | |
| delete() | 删除一个键 | |
| type() | 判断键类型 | |
| keys(pattern) | 获取所有符合规则的键 | keys(*) |
| randomkey() | 随机获取一个键 | |
| rename(src,dst) | ||
| dbsize() | ||
| expire(name,time) | ||
| ttl() | ||
| move(name) | 把键移动到其他数据库 | |
| flushdb() | 清空当前数据库 | |
| flushall() | 清空所有数据库 | |
| expire() |
字符串
| 方法 | 作用 | 例子 |
|---|---|---|
| set | ||
| get | ||
| getset() | ||
| mget() | ||
| mset() | ||
| incr(name,amount=1) | ||
| decr(name, amount=1) | ||
| append(key,value) | ||
列表
| 方法 | 作用 | 例子 |
|---|---|---|
| rpush() | 末尾添加一个元素 | |
| lpush() | ||
| lpop() | ||
| rpop() | ||
| llen(name) | ||
| lrange(name,start,end) | ||
| lindex(name,index) | ||
| lset(name,index,value) | lset(‘list’,1,5) 索引为1的元素,赋值为5 | |
| lrem(name.count,value) | lrem(‘list’,2,3) 删除两个3 |
集合
| 方法 | 作用 | 例子 |
|---|---|---|
| sadd(setname,*values) | ||
| srem(setname,*values) | ||
| spop(setname) | ||
| smove(src,dst,value) | 把value移动到另外一个集合中去 | |
| scard(name) | 获取元素个数 | |
| sismember(setname,value) | 判断 | |
| sinter([setname,setname,……]) | 返回交集 | |
| sunion([setname,setname,……]) | 返回并集 | |
| sdiff([setname,setname,……]) | 返回差集 | |
| smembers(setname) | 查看全部元素 | |
| srandmember(setname) | 随即返回一个元素,不删除 | |
有序集合
| 方法 | 作用 | 例子 |
|---|---|---|
| zadd() | zadd(‘grade’,100,‘bob’,98,‘mike’) | |
| zrem() | zrem(‘grade’,‘Mike’) | |
| zincrby() | zincrby(‘grade’,‘bob’,-2) | |
| zrank(setname,value) | 返回名次,从小到大排序 | zrank(‘grade’,‘amy’) |
| zrevrank(setname,value) | 返回名词,从大到小排序 | |
| zrevrange(setname,start,end) | zrevrange(‘grade’,0,3) | |
| zrangebyscore(setname,start,end) | zrangebyscore(‘grade’,85,100) | |
| zcount(setname,min,max) | min->max之间的个数 | |
| zcard(setname) | 返回个数 | |
| zremrangebyrank(setname,min,max) | 删除 | |
| zremrangebyscore(setname,min,max) | 删除元素 | |
散列
| 方法 | 作用 | 例子 |
|---|---|---|
| hset() | hset(‘price’,‘cake’,5) | |
| hget() | ||
| hmset() | ||
| hmget() | ||
| hincrby() | ||
| hexists() | ||
| hdel() | ||
| hlen() | ||
| hkeys() | ||
| hvals() | ||
| hgetall() |
文章来源: https://blog.csdn.net/CoolScript/article/details/90286767