python 数据存储

python保存数据方法总结 python保存数据的不同方法 阅读详情

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))

操作文件

import json

with open('jiuba.json', 'w', encoding='utf8') as f:
    json.dump(res.json(), f, indent=2, ensure_ascii=False)

with open('jiuba.json', encoding='utf8') as f:
    jiuba_dict = json.load(f)

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()

其他

sqlalchemy

dialect+driver://username:password@host:port/database

例如:

from sqlalchemy import create_engine
engine = create_engine("mysql://scott:tiger@hostname/dbname",
                            encoding='latin1', echo=True, pool_size=10)

例子:

from sqlalchemy import create_engine


DB_NAME = 'only_test'
TABLE_NAME = 'students'
DB_URI = f'mysql://root:huajian@localhost:3306/{DB_NAME}'


engine = create_engine(DB_URI, encoding='utf8', echo=True)
conn = engine.connect()

sql_cre_table = f'''
create table if not exists {TABLE_NAME}(
    id int(11) auto_increment,
    name varchar(20),
    age int,
    grade int,
    primary key (id)
)
'''

sql_insert_1 = f'insert ignore into {TABLE_NAME}(name,age,grade) values ("bob",21,98);'
sql_insert_2 = f'insert ignore into {TABLE_NAME}(name,age,grade) values ("amy",21,98);'

# 一次性commit
with conn.begin() as trans:
    conn.execute(sql_cre_table)
    conn.execute(sql_insert_1)
    conn.execute(sql_insert_2)
    res = conn.execute('select count(*) from region_new;')
    for i in res:
        print(i)
    trans.commit()

postgresql
# default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')

# psycopg2
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')

# pg8000
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
mysql
# default
engine = create_engine('mysql://scott:tiger@localhost/foo')

# mysqlclient (a maintained fork of MySQL-Python)
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

# PyMySQL
engine = create_engine('mysql+pymysql://scott:tiger@localhost/foo')
oracle
engine = create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')

engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')
Microsoft SQL Server
# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
sqlite
engine = create_engine('sqlite:///foo.db')

# to use a SQLite :memory: database, specify an empty URL:
engine = create_engine('sqlite://')
Python+不同的数据存储方式比较 本文来探索一下python中提供的各种数据保存格式的性能如何。主要以一个 ndarray 格式的数据进行处理分析。包括下面几种方式: .bin格式, tofile() 和 fromfile() .npy格式,save() 和 load() .txt 或者 .csv格式,savetxt() 和 loadtxt() .h5 文件 .pkl 文件 import numpy as np from __fut 阅读详情

相关推荐

【Python爬虫】数据存储

数据存储 1.存储至TXT a+为Python文件的读写模式,表示将对文件使用附加读写方式打开,如果该文件不存在,就会创建一个新文件。 一般在读取文件的时候可以使用r方式,如果文件不存在,就会返回错误,而且无法向该文件中写入数据,这样就保证了读取文件的可靠性。 综上所述,地址可以写成如下3种形式: (1)with open('C:\\you\desktop\\title.txt',"a+...

小哲的博客 589

Python-数据的多种存储形式

1 JSON 文件存储 JSON,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,它通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。本节中,我们就来了解如何利用 Python 保存数据到 JSON 文件。 1. 对象和数组 在 JavaScript 语言中,一切都是对象。因此,任何支持的类型都可以通...

shifengboy的博客 3249

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1005

Python数据存储读取,6千字搞定各种方法

来源:简说Python作者:老表一、前言二、专栏概要三、做准备:将爬取到的数据存入csv和mysql、其他数据库3.1 前情回顾3.1 数据存入+读取csv3.2 数据存入+读取 MySQ...

简说Python的博客 1919

使用CLion在Window端进行linux开发

        以往不管是开发x86端linux程序还是arm端linux程序,都是使用Source Insight作为源码编辑工具的,如下图      去年底,发现CLion的2018.3更新版本,可以支持remote host开发了,大爱!     我是基于以下几点原因,将开发工具换成CLion 1. 语法高亮较明显、跳转、重构方便(我很看重这个); 2. 可以使用图形界面进行调...

alist的笔记专栏 1万+

PMSM无感foc控制(滑模-反正切-PLL)【仿真模型搭建教程】(附模型)

本文主要目的是教大家如何把文献中的公式转换成仿真模型。 首先介绍滑模控制的原理及如何搭建simulink模型。 1.1基于反电势估计位置原理 永磁同步电机在静止坐标系αβ下的电压方程: 扩展反电动势包含转子位置信息,并且αβ轴下扩展反电动势的反正切函数正好就等于位置角theta。 1.2 滑模控制原理(比较重要的点是以电机电流模型推导展开) 通过滑模观测得到鲁棒性比较高的αβ轴下扩展反电动势,并求其反正切函数,得到位置信息。 /*********************...

weixin_44769876的博客 1万+

python简单的保存数据所使用的三大方法

json.dump(python数据 , 文件),dump可以直接将python数据转为json字符串,并存于文件中。json.load()直接将文件中存储的json字符串转为python数据类型并存储进文件中。4.abspath()返回一个文件夹的绝对路径和dirname()返回一个文件路径的父级路径。json.loads()将文件中存储的json字符串转为python数据类型。Python open() 方法用于打开一个文件,并返回文件对象。readline()读取文件中的一行内容,返回一个字符串。

dhudhj的博客 4422

mipi协议中的calibration和scramble模式

在MIPI(Mobile Industry Processor Interface)协议中,calibration(校准)和scramble(加扰)模式是两个重要的特性,它们分别用于优化数据传输的准确性和减少信号干扰。

flomingo1的专栏 2402

Python中数据的多种存储形式

MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。在这一节中,我们就来看看 Python 3 下 MongoDB 的存储操作。安装地址参考:https://www.runoob.com/mongodb/mongodb-linux-install.html。

Python热爱者的博客 1333

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 302

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战

KJ.JK 1422

python之数据存储

python之数据存储列表元组 列表 概念:列表是一种存储大量数据的存储类型 特点 列表具有索引概念,可以通过索引操作列表中的数据 列表中的数据可以进行添加、删除、修改、查询等操作 列表的定义和使用 变量名=[数据1,数据2,……] #创建 变量名[索引] #获取列表中的数据 变量名[索引]=值 #修改列表中的数据 操作列表常用方法 方法名 功能 参数 返回值 append(data) 在列表的末尾加数据 data:要追加的数据 None insert(index,d

David_house的博客 1359

SI案例分享--PCB通孔互连新技术的应用(VeCS)

本文介绍了VeCS的物理结构和制造过程,并通过全波仿真模拟和测量,分析了VeCS的电性能,并与传统的测量方法进行了比较。结果表明,由于有一个连续的参考平面,VeCS的TDR阻抗可以很容易地控制到目标阻抗,同时可以大大减轻信道上的串扰,的确是一种性能不错的PCB互连创新设计方案。

一只豌豆象的博客 2116

Python之文档数据存储

写入和读取CSV、Excel和Word中的数据是编写爬虫程序的重要内容,现将学习爬虫涉及到的文档数据存储知识整理出来与大家分享。 Python之文档数据存储 CSV数据的写入和读取 ​ 常用的数据存储介质有文件、关系型数据库和非关系型数据库。文本文档存储适用于具有时效性的数据,如股市行情、商品信息和排行榜信息等,这类数据具有动态变化性质,非特殊要求下,建议存放文件。Python标准库自带CSV模块,不用自行安装。 数据写入CSV 代码如下: #_*_coding:utf-8_*_ # 作者 :l

Bruce_xiaowei的博客 784

AI人工智能 Agent:在仓储物流中的应用

AI人工智能 Agent:在仓储物流中的应用 1. 背景介绍 1.1 问题的由来 仓储物流行业是全球经济运行的基石之一,涉及商品的存储、运输、分拣和配送等多个环节。随着电子商务的普及和消费者对物流速度和精确性的要求不断提高,仓储物流

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 864

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python爬虫之数据存储

在爬虫接单里,数据存储是一定要学的。本文讲数据存储,包括文本,csv,json,mysql,mongodb等等。

m0_64408930的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Python】数据存储

Python爬虫中的数据存储操作

JoonHee的博客 3054

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python数据存储方式_python各数据存储方法

声明:1)仅作为个人学习,如有冒犯,告知速删!2)不想误导,如有错误,不吝指教!本节内容:简介------------------文件存储------------------TXT文本存储JSON文件存储CSV文件存储------------------关系型数据库---------------MySQL存储------------------非关系数据库---------------Mongod...

weixin_32001191的博客 1702

Python——数据存储的三种方法

一、CSV文件 1、导入 由于是python自带的库,无需安装就可以使用,只要使用下面命令就可以导入 import csv 2 、使用方法 2.1 从csv文件读入数据 import csv #使用open函数打开csv文件 with open('mc.csv','r')as f: #reader是一个迭代器,for循环来打印,返回的是列表 reader = csv.reader(f) #第一行开始遍历,表示标题数据去除(自选) next(reader) for r

weixin_45127640的博客 3608

python数据数据存储-Python数据存储之 h5py详解

1、Python数据存储(压缩)(1)numpy.save , numpy.savez , scipy.io.savematnumpy和scipy内建的数据存储方式。(2)cPickle + gzipcPickle是pickle内建的数据存储方式,gzip是常用的文件压缩模块。(3)h5pyh5py是对HDF5文件格式进行读写的python包,关于h5py更多介绍与安装,参考官方网站关于HDF5,...

weixin_37988176的博客 787

python 数据存储模块shelve

python 数据存储模块shelve pass

汪云辉的博客 166

python数据数据存储-Python教程 | 五种常见的数据存储方式

大数据时代下,生活和数据息息相关,越来越多的行业和个人都需要大数据的帮助。这样的背景下,爬虫采集成为主流。爬虫过程中主要使用的是Python语言,而在Python开发中,数据存储、读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件、csv文件、MySQL数据库、Redis数据库以及Mongdb数据库等。1、json文件存储数据json是一种轻量级的数据交换格式,采用完全独...

weixin_37988176的博客 1602

Python 与 数据存储

用 Python 存储数据,完成数据库读写操作。爬虫基础。web服务基础。

clownote 325

Python数据存储与压缩

Python数据存储与压缩   跑实验要用到数据集,对于一些不大的数据集,为了节省时间,有时候会先预处理,然后将各个文件存储成一个大文件,一次性读入内存,省去了每个迭代重新读入和重新预处理的时间。这里讨论一些数据存储与压缩方式,至于Tensorflow里用到的Dataset之类的数据存取不在本文范围内。   本文主要针对以下几点进行对比分析:多Tensor存储的支持性、占用空间大小、读取方便性。 ...

songbinxu的博客 9563

python多维数据存储_Python数据存储之 h5py详解

1、Python数据存储(压缩)(1)numpy.save , numpy.savez , scipy.io.savematnumpy和scipy内建的数据存储方式。(2)cPickle + gzipcPickle是pickle内建的数据存储方式,gzip是常用的文件压缩模块。(3)h5pyh5py是对HDF5文件格式进行读写的python包,关于h5py更多介绍与安装,参考官方网站关于HDF5,...

weixin_39677027的博客 687

python数据数据存储-Python存储数据的方式

在Python开发中,数据存储、读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件、csv文件、MySQL数据库、Redis数据库以及Mongdb数据库等。1. json文件存储数据json是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,可以轻松解决py2和py3的编码问题,内容结构类似于python中的字典和列表,层次结构简洁而清晰,易于人...

weixin_37988176的博客 2389
上一篇: scrapy常用settings.py
下一篇: 004 redis高级功能
CoolScript
博客等级 码龄9年 26粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值