python连接redis数据库的⽅法以及序列化和反序列化的⽅法⼀、python连接数据库的⽅法
python连接redis数据库⾸先需要安装redis依赖项:
在终端敲如下命令进⾏安装:
pip install redis
然后使⽤redis中的Redis⽅法进⾏数据库的连接,详细的连接⽅法详见最后⾯的代码内容!!
⼆、序列化和反序列化
序列化:把对象变成字符串或者字节串,即为序列化
⽅法1:pickle.dumps(对象)
⽅法2:json.dumps(对象)
反序列化:把字符串或者字节串变成对象,即为反序列化
⽅法:pickle.loads(字节串内容)
以下为详细代码内容,数据库的连接和序列化的内容⾥⾯都有包含,内容我也⼜备注,有兴趣可以查看
"""
序列化:把对象变成字符串或字节串
反序列化:把字符串或字节串还原成对象
json: object ---> str / str ---> object ---> 跨语⾔
pickle: object ---> bytes / bytes ---> object ---> Python
"""
import json
import pickle
import redis
class Dept:
def__init__(self, no, name, location):
< = no
self.name = name
self.location = location
def__str__(self):
return f'{}\t{self.name}\t{self.location}'
# 数据库的连接
redis_cli = redis.Redis(host='47.115.130.16',
port=6677,
password='123hcl456')
# 判断数据库是否连接成功
print(redis_cli.ping())
print(l('username'))
print(('username'))
pire('username',1800)
dept = Dept(110,'产品运营部','昆明')
# 序列化,把对象变成字节串写⼊数据库:pickle.dumps
redis_cli.set('python2004:pickle:dept:110', pickle.dumps(dept))
# 反序列化,将字节串转化为对象显⽰:pickle.loads
data2 = ('python2004:pickle:dept:110')
print('1:',pickle.loads(data2),type(pickle.loads(data2)))
#序列化,把对象变成字节串写⼊
redis_cli.set('python2004:json:dept:110', json.dumps(dept.__dict__))
import pickledata = ('python2004:json:dept:110')
# 查询到的数据都是⼆进制型,使⽤decode转换成字符串
# 数据是bytes性
print('2:',data,type(data))
# 使⽤json.loads()可以转换未字典
print('3:',json.loads(data),type(json.loads(data)))
# 使⽤decode将bytes型转换为str
print('4:',data.decode(),type(data.decode()))
print('5:',redis_cli.hvals('stu:1002'))
程序的结果为:
True
-2
None
1: 110 产品运营部昆明 <class'__main__.Dept'>
2: b'{"no": 110, "name": "\\u4ea7\\u54c1\\u8fd0\\u8425\\u90e8", "location": "\\u6606\\u660e"}' <class'bytes'> 3: {'no': 110,'name': '产品运营部','location': '昆明'} <class'dict'>
4: {"no": 110,"name": "\u4ea7\u54c1\u8fd0\u8425\u90e8","location": "\u6606\u660e"} <class'str'>
5: [b'baiyuanfang', b'male', b'1995-3-2']
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论