Python Redis哈希hash存储和读取json字符串

import redis
rdb = redis.Redis(host='localhost',port=6379,db=1)

#模拟数据
data = [
	{"name":"张三","age":18},
	{"name":"李四","age":20}
]

#redis哈希存储,注意这边必须是以字符串形式存储
for x in data:
	hsname = x['name']
	rdb.hset('student',hsname ,str(x))

读取数据:

list = rdb.hgetall('student')
for x in list:
	temp = rdb.hget('student', x).decode('utf-8')
	print(temp)
	print(type(temp))

你会发现,输出的格式,双引号全变成单引号了,并且是 类型

{'name':'张三','age':18}
{'name':'李四','age':20}

处理数据: 对象存入redis后,都是字符串的形式,想到的是字符串转json,使用 json.loads() 这个函数,但是使用这个函数,就会出现以下问题:json.decoder.JSONDecodeError: Expecting property name enclosed in double问题在于json里只能用双引号,不能用单引号!

通过 eval 就可以转出来:

list = rdb.hgetall('student')
for x in list:
	temp = eval(rdb.hget('student', x).decode('utf-8'))
	print(type(temp))

你会发现类型为

你可能感兴趣的:(Python)