如何通过Python将JSON格式文件导入redis?
摘要:如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务。
本文分享自华为云社区《Python将JSON格式文件导入 redis,多种方法》,作者: 梦想橡皮擦 。
在导入前需要先确定你已经安装 Redis,并且可以启动相关服务。
windows 上启动 redis 的命令是 redis-server.exe redis.windows.conf,效果图如下:
使用 Python 连接 redis
如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务,实现步骤如下所示。
安装 redis 与 导入
安装 redis 库
pip install redis
导入 redis 库
import redis
使用代码连接 Redis
通过 redis 库的 Redis 类连接 Redis 服务器。
import redis r = redis.Redis(host='localhost', port=6379, db=0) print(r)
连接到本地 Redis 服务器,并使用默认端口 6379,连接到数据库 0,这里建议使用 redis desktop 工具同步进行连接测试。
写入键值
连接成功后,可以使用 Redis 的命令来操作数据,例如设置键值对:
import redis r = redis.Redis(host='localhost', port=6379, db=15) r.set('name', '梦想橡皮擦') print(r)
可以在可视化工具中查看到数据已经写入。
获取键值
r.get('name')
基础准备好,接下来就将 JSON 文件一次性的写入到 redis 中。
操作 JSON 文件写入 redis
首先使用 json.load() 方法读取 JSON 文件,首先看一下 JSON 文件内容。
JSON 最外层是一个列表,其中每一个元素都是对象,我们需要将每个对象都插入到 redis 中,形成 使 Redis 的哈希表。
完整代码如下所示:
import redis import json r = redis.Redis(host='localhost', port=6379, db=15) with open('travel.json', 'r',encoding='utf-8') as file: data = json.load(file) for item in data: r.lpush('travel', json.dumps(item))
先看一下插入之后的结果。
上述代码是将 JSON 文件中的每一项都转换为字符串,然后以 lpush 方式插入到队列的左侧,也可以使用 rpush 进行插入。
如果希望以键值对形式进行插入,需要使用 hset() 方法,参考代码如下所示。
import redis import json r = redis.Redis(host='localhost', port=6379, db=15) with open('travel.json', 'r',encoding='utf-8') as file: data = json.load(file) for index,item in enumerate(data): r.hset('travel', index, json.dumps(item))
可以看到此时 redis 中存储了 key 和 value 。
r.hset(name, key, value) 方法是 Redis 哈希表命令之一,用于将指定的键和值添加到 Redis 哈希表中。
- 参数说明如下:
- name:哈希表的名称。
- key:要添加的键。
- value:要添加的值。
它返回一个整数,表示添加的键值对是否是该哈希表的新键值对。
如果返回 1,表示新键值对已添加;
如果返回 0,表示键已经存在,并且值已被更新。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RoCE多网卡时,报文可以过去,但是回不来
摘要:虽然网卡是接入RoCE网络,但其实问题本身是单纯路由相关的,所以看的时候,不用关注RoCE,只当做一个独立子网就行了 本文分享自华为云社区《<跟唐老师学习云网络> - RoCE多网卡时,报文可以过去,但是回不来》,作者: tsjsdbd 。 一、网络概要 一台机子,接入2个子网,一个普通通信的,一个高速通信的。并且接入高速通信子网,有8张网卡。如下图: 本文描述的问题,只关注高速子网这一部分。为帮助理解问题,网络可以简化为: 每个网卡,都有分配该子网的一个IP。如下: 二、问题现象 A只能通B里面的一个IP,其余7个IP都不通。下图为A--->B 的结果: 图示:只有1个IP能通 反过来也一样,后面只讲一个方向的(A-->B)。 三、问题定位 1.先看报文有没有到达B。 如果都不能到B,说明网络接的有问题。如果到了B,但是不回来,说明路由配置可能有问题。 Ping不通的ip(228)时,在主机B上面进行抓包分析(228对应的网卡名是enp80s0f0,所以这里监听这个网卡): tcpdump -i enp80s0f0 -n arp listening o...
- 下一篇
GaussDB(DWS)条件表达式函数返回错误结果集排查
摘要:条件表达式函数中出现结果集不一致问题,我们首先要考虑是否入参数据类型不一致导致出参不一致。 本文分享自华为云社区《GaussDB(DWS)条件表达式函数返回错误结果集排查》,作者:yd_211369925 。 (一)案例背景 客户使用greatest获取并返回参数列表中值最大的表达式的值,子查询中查询结果与将子查询的结果粘出来单独执行结果集不一致。 select greatest(1,2,100,-1,0,nvl(null,0)) --结果为2,select nvl(null,0)的结果为0 select greatest(1,2,100,-1,0,0) --结果为100 (二)问题排查 首先我们要了解greatest和nvl两个函数的用法 客户使用的版本为dws820环境为mysql兼容模式,nvl(null,0)结果类型为unknown的类型即为text; 第一条greatest(1,2,100,-1,0,nvl(null,0))参数中存在int和text,即按字符排序2最大; 第二条greatest(1,2,100,-1,0)参数均为int,输出按数值排序100最大; 拓...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G